Adding sortscreens patch
This commit is contained in:
@ -94,6 +94,12 @@
|
||||
#include "setborderpx.c"
|
||||
#endif
|
||||
|
||||
#ifdef XINERAMA
|
||||
#if SORTSCREENS_PATCH
|
||||
#include "sortscreens.c"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if STICKY_PATCH
|
||||
#include "sticky.c"
|
||||
#endif
|
||||
|
@ -94,6 +94,12 @@
|
||||
#include "setborderpx.h"
|
||||
#endif
|
||||
|
||||
#ifdef XINERAMA
|
||||
#if SORTSCREENS_PATCH
|
||||
#include "sortscreens.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if STICKY_PATCH
|
||||
#include "sticky.h"
|
||||
#endif
|
||||
|
15
patch/sortscreens.c
Normal file
15
patch/sortscreens.c
Normal file
@ -0,0 +1,15 @@
|
||||
void
|
||||
sortscreens(XineramaScreenInfo *screens, int n)
|
||||
{
|
||||
int i, j;
|
||||
XineramaScreenInfo *screen = ecalloc(1, sizeof(XineramaScreenInfo));
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
for (j = i + 1; j < n; j++)
|
||||
if (RIGHTOF(screens[i], screens[j])) {
|
||||
memcpy(&screen[0], &screens[i], sizeof(XineramaScreenInfo));
|
||||
memcpy(&screens[i], &screens[j], sizeof(XineramaScreenInfo));
|
||||
memcpy(&screens[j], &screen[0], sizeof(XineramaScreenInfo));
|
||||
}
|
||||
XFree(screen);
|
||||
}
|
3
patch/sortscreens.h
Normal file
3
patch/sortscreens.h
Normal file
@ -0,0 +1,3 @@
|
||||
#define RIGHTOF(a,b) (a.y_org > b.y_org) || ((a.y_org == b.y_org) && (a.x_org > b.x_org))
|
||||
|
||||
static void sortscreens(XineramaScreenInfo *screens, int n);
|
Reference in New Issue
Block a user