mirror of
https://github.com/gryf/wmaker.git
synced 2026-09-01 00:37:53 +02:00
Compare commits
4
Commits
17d44e1503
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b5bd9a1995 | ||
|
|
d581598c7b | ||
|
|
78b58d4418 | ||
|
|
c7ab42e183 |
@@ -146,6 +146,7 @@ configure-documentation:
|
|||||||
--ignore-prg 'with-aix-soname # new in libtool 2.4.4 up to 2.5.2' \
|
--ignore-prg 'with-aix-soname # new in libtool 2.4.4 up to 2.5.2' \
|
||||||
--ignore-prg 'enable-aix-soname # renamed in libtool 2.5.3' \
|
--ignore-prg 'enable-aix-soname # renamed in libtool 2.5.3' \
|
||||||
--ignore-prg 'enable-pic # new in libtool 2.5.3' \
|
--ignore-prg 'enable-pic # new in libtool 2.5.3' \
|
||||||
|
--ignore-prg 'enable-cxx-stdlib # new in libtool 2.6.0' \
|
||||||
--ignore-prg 'with-x # no use, it would not work without X'
|
--ignore-prg 'with-x # no use, it would not work without X'
|
||||||
|
|
||||||
.PHONY: configure-documentation
|
.PHONY: configure-documentation
|
||||||
|
|||||||
@@ -47,8 +47,6 @@ Never: (so, dont even bother to ask)
|
|||||||
======
|
======
|
||||||
- different themes for each workspace. Unless you give us a SGI/Power Onyx
|
- different themes for each workspace. Unless you give us a SGI/Power Onyx
|
||||||
with 2 CPUs ;).
|
with 2 CPUs ;).
|
||||||
- anything that requires the mouse pointer to be jumped by WindowMaker to
|
|
||||||
somewhere. This is *terrible* behaviour. And it's not just IMO.
|
|
||||||
- rewrite to use Gtk... I wont even bother to explain why...
|
- rewrite to use Gtk... I wont even bother to explain why...
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,10 @@ AUTOMAKE_OPTIONS =
|
|||||||
SUBDIRS = WINGs . po Documentation Resources
|
SUBDIRS = WINGs . po Documentation Resources
|
||||||
DIST_SUBDIRS = $(SUBDIRS) Tests Examples Extras
|
DIST_SUBDIRS = $(SUBDIRS) Tests Examples Extras
|
||||||
|
|
||||||
|
dist-hook:
|
||||||
|
rm -f $(distdir)/Examples/Makefile $(distdir)/Extras/Makefile \
|
||||||
|
$(distdir)/Tests/Makefile
|
||||||
|
|
||||||
libWINGs_la_LDFLAGS = -version-info @WINGS_VERSION@
|
libWINGs_la_LDFLAGS = -version-info @WINGS_VERSION@
|
||||||
libWUtil_la_LDFLAGS = -version-info @WUTIL_VERSION@
|
libWUtil_la_LDFLAGS = -version-info @WUTIL_VERSION@
|
||||||
|
|
||||||
|
|||||||
+58
-20
@@ -1476,6 +1476,63 @@ static void startMarkCapture(WScreen *scr, Display *dpy, WMarkCaptureMode mode)
|
|||||||
XGrabKeyboard(dpy, scr->root_win, False, GrabModeAsync, GrabModeAsync, CurrentTime);
|
XGrabKeyboard(dpy, scr->root_win, False, GrabModeAsync, GrabModeAsync, CurrentTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Warp pointer to the center of the next monitor, cycling.
|
||||||
|
*
|
||||||
|
* Monitors are the Xinerama/RandR heads of every managed screen,
|
||||||
|
* visited in (screen, head) order starting from the head the pointer
|
||||||
|
* is on. With one head per screen this reduces to hopping from X11
|
||||||
|
* screen to X11 screen as before.
|
||||||
|
*/
|
||||||
|
static void warpPointerToNextMonitor(WScreen *scr)
|
||||||
|
{
|
||||||
|
WMRect rect;
|
||||||
|
WScreen *target;
|
||||||
|
int total, current, next;
|
||||||
|
int i, h;
|
||||||
|
|
||||||
|
total = 0;
|
||||||
|
for (i = 0; i < w_global.screen_count; i++)
|
||||||
|
total += wXineramaHeads(wScreenWithNumber(i));
|
||||||
|
|
||||||
|
if (total <= 1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
/* flat index of the monitor the pointer is currently on */
|
||||||
|
current = 0;
|
||||||
|
for (i = 0; i < w_global.screen_count; i++) {
|
||||||
|
if (wScreenWithNumber(i) == scr) {
|
||||||
|
h = wGetHeadForPointerLocation(scr);
|
||||||
|
if (h < 0 || h >= wXineramaHeads(scr))
|
||||||
|
h = 0;
|
||||||
|
current += h;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
current += wXineramaHeads(wScreenWithNumber(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
next = (current + 1) % total;
|
||||||
|
|
||||||
|
/* map the flat index back to a (screen, head) pair */
|
||||||
|
target = NULL;
|
||||||
|
for (i = 0; i < w_global.screen_count; i++) {
|
||||||
|
target = wScreenWithNumber(i);
|
||||||
|
h = wXineramaHeads(target);
|
||||||
|
if (next < h)
|
||||||
|
break;
|
||||||
|
next -= h;
|
||||||
|
target = NULL;
|
||||||
|
}
|
||||||
|
if (!target)
|
||||||
|
return;
|
||||||
|
|
||||||
|
rect = wGetRectForHead(target, next);
|
||||||
|
XWarpPointer(dpy, None, target->root_win, 0, 0, 0, 0,
|
||||||
|
rect.pos.x + (int)rect.size.width / 2,
|
||||||
|
rect.pos.y + (int)rect.size.height / 2);
|
||||||
|
XFlush(dpy);
|
||||||
|
}
|
||||||
|
|
||||||
static void dispatchWKBDCommand(int command, WScreen *scr, WWindow *wwin, XEvent *event)
|
static void dispatchWKBDCommand(int command, WScreen *scr, WWindow *wwin, XEvent *event)
|
||||||
{
|
{
|
||||||
short widx;
|
short widx;
|
||||||
@@ -1898,26 +1955,7 @@ static void dispatchWKBDCommand(int command, WScreen *scr, WWindow *wwin, XEvent
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case WKBD_SWITCH_SCREEN:
|
case WKBD_SWITCH_SCREEN:
|
||||||
if (w_global.screen_count > 1) {
|
warpPointerToNextMonitor(scr);
|
||||||
WScreen *scr2;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
/* find index of this screen */
|
|
||||||
for (i = 0; i < w_global.screen_count; i++) {
|
|
||||||
if (wScreenWithNumber(i) == scr)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
i++;
|
|
||||||
if (i >= w_global.screen_count) {
|
|
||||||
i = 0;
|
|
||||||
}
|
|
||||||
scr2 = wScreenWithNumber(i);
|
|
||||||
|
|
||||||
if (scr2) {
|
|
||||||
XWarpPointer(dpy, scr->root_win, scr2->root_win, 0, 0, 0, 0,
|
|
||||||
scr2->scr_width / 2, scr2->scr_height / 2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WKBD_RUN:
|
case WKBD_RUN:
|
||||||
|
|||||||
@@ -3,6 +3,9 @@
|
|||||||
SUBDIRS = . po
|
SUBDIRS = . po
|
||||||
DIST_SUBDIRS = $(SUBDIRS) tests
|
DIST_SUBDIRS = $(SUBDIRS) tests
|
||||||
|
|
||||||
|
dist-hook:
|
||||||
|
rm -f $(distdir)/tests/Makefile
|
||||||
|
|
||||||
AUTOMAKE_OPTIONS =
|
AUTOMAKE_OPTIONS =
|
||||||
|
|
||||||
EXTRA_DIST = tests
|
EXTRA_DIST = tests
|
||||||
|
|||||||
Reference in New Issue
Block a user