Re: sloppy and "other"

Ellington Santos <[email protected]>
Newsgroups gmane.comp.window-managers.ratpoison.devel
Message-ID <CAK91t2K7tsUJwKDLvJxk0Tnm9-T9TNNtR2rDxrnVurKAan07FQ@mail.gmail.com>
Buddies,

Some time I've got this sloppy in git. I don't remember where I found it,
but it works flawless.


On Mon, Apr 21, 2014 at 5:33 PM, Jérémie Courrèges-Anglas <[email protected]>wrote:

> Jeff Abrahamson <[email protected]> writes:
>
> > I've been playing with sloppy on a dual-head setup.  It makes life quite
> a
> > bit better for me.  I notice, however, that the "other" command, which
> > should toggle between two windows in the same frame, causes an endless
> > flicker loop when sloppy is running.
>
> I think that problem has already been reported, but was not fixed.
>
> > I submitted a bug <https://savannah.nongnu.org/bugs/index.php?42161> to
> > this effect on Savannah, but it's not clear to me that that bug tracker
> is
> > being used.
>
> It is, I encourage people to use it so that reports don't get lost, so
> thank you.
>
> > (I see plenty of commits from Jérémie, but not much activity
> > otherwise, so I'm a bit uncertain what the status of the project is these
> > days.)
>
> It's alive!  Commits lead to releases, 1.4.7 was published this month.
>
> --
> jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE
>
> _______________________________________________
> Ratpoison-devel mailing list
> [email protected]
> https://lists.nongnu.org/mailman/listinfo/ratpoison-devel
>

_______________________________________________
Ratpoison-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/ratpoison-devel
sloppy-abe.c (text/x-csrc, 2.6 KB)
/* Sloppy focus
 *
 * Copyright (C) 2005 Shawn Betts <[email protected]>
 *
 * sloppy is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * sloppy is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA
 */

#include <X11/Xos.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xproto.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>

int (*defaulthandler)();

int
errorhandler(Display *display, XErrorEvent *error)
{
  if(error->error_code!=BadWindow)
    (*defaulthandler)(display,error);
  return 0;
}

int
spawn(char *cmd)
{
  int pid;

  pid = fork();
  if (pid == 0)
    {
      execl("/bin/sh", "sh", "-c", cmd, (char *)NULL);
      _exit(EXIT_FAILURE);
    }
  return pid;
}

int
main (int argc, char **argv)
{
  Display *display;
  int i, numscreens;

  display = XOpenDisplay(NULL);
  if(!display)
    {
      perror("could not open display");
      exit(1);
    }

  defaulthandler = XSetErrorHandler(errorhandler);
  numscreens = ScreenCount(display);

  for (i=0; i<numscreens; i++)
    {
      unsigned int j, nwins;
      Window dw1, dw2, *wins;

      XSelectInput(display,RootWindow(display, i), SubstructureNotifyMask);
      XQueryTree(display, RootWindow(display, i), &dw1, &dw2, &wins, &nwins);
      for (j=0; j<nwins; j++)
	XSelectInput(display, wins[j], EnterWindowMask);
    }

  while (1)
    {
      XEvent event;
      do
	{
	  XNextEvent(display,&event);
	  if (event.type == CreateNotify)
	    XSelectInput(display, event.xcreatewindow.window, EnterWindowMask);
	} while(event.type != EnterNotify);

      /* A window was entered. select it. */
      {
        char shell[256];
        snprintf (shell, 255, "$RATPOISON -c \"select $($RATPOISON -c 'windows %%i %%n %%f' | grep '%ld' | awk '$3 != '$($RATPOISON -c curframe)' && $3 != \"\" {print $2}')\" 2>/dev/null", event.xcrossing.window);
	//printf ("%s\n", shell);
        spawn (shell);
        wait (NULL);
      }
    }

  XCloseDisplay (display);

  return 0;
}

/*
Local Variables: ***
compile-command: "gcc -g -Wall -O2  -I/usr/X11R6/include -o sloppy sloppy.c -L/usr/X11R6/lib -lX11" ***
End: ***
*/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.