Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 288706 | Differences between
and this patch

Collapse All | Expand All

(-)gnome-screensaver-2.28.0/src/gs-monitor.c (-1 / +41 lines)
Lines 29-34 Link Here
29
#include <glib.h>
29
#include <glib.h>
30
#include <glib-object.h>
30
#include <glib-object.h>
31
31
32
#include <gdk/gdkx.h>
33
#include <X11/keysym.h>
34
#include <X11/extensions/XTest.h>
35
32
#include "gnome-screensaver.h"
36
#include "gnome-screensaver.h"
33
37
34
#include "gs-manager.h"
38
#include "gs-manager.h"
Lines 56-61 Link Here
56
        GSFade         *fade;
60
        GSFade         *fade;
57
        GSGrab         *grab;
61
        GSGrab         *grab;
58
        guint           release_grab_id;
62
        guint           release_grab_id;
63
        gboolean        have_xtest;
64
        int             keycode1;
65
        int             keycode2;
66
        int            *keycode;
59
};
67
};
60
68
61
#define FADE_TIMEOUT 10000
69
#define FADE_TIMEOUT 10000
Lines 186-192 Link Here
186
static void
194
static void
187
gs_monitor_simulate_user_activity (GSMonitor *monitor)
195
gs_monitor_simulate_user_activity (GSMonitor *monitor)
188
{
196
{
189
        /* FIXME: reset the xsync timer? */
197
        if (monitor->priv->have_xtest) {
198
                XLockDisplay (GDK_DISPLAY ());
199
		XTestFakeKeyEvent (GDK_DISPLAY(), *monitor->priv->keycode,
200
				True, CurrentTime);
201
		XTestFakeKeyEvent (GDK_DISPLAY(), *monitor->priv->keycode,
202
				False, CurrentTime);
203
		XUnlockDisplay (GDK_DISPLAY());
204
		/* Swap the keycode */
205
		if (monitor->priv->keycode == &monitor->priv->keycode1)
206
			monitor->priv->keycode = &monitor->priv->keycode2;
207
		else
208
			monitor->priv->keycode = &monitor->priv->keycode1;                 
209
        }
190
210
191
        /* request that the manager unlock -
211
        /* request that the manager unlock -
192
           will pop up a dialog if necessary */
212
           will pop up a dialog if necessary */
Lines 416-421 Link Here
416
static void
436
static void
417
gs_monitor_init (GSMonitor *monitor)
437
gs_monitor_init (GSMonitor *monitor)
418
{
438
{
439
        int a, b, c, d;
419
440
420
        monitor->priv = GS_MONITOR_GET_PRIVATE (monitor);
441
        monitor->priv = GS_MONITOR_GET_PRIVATE (monitor);
421
442
Lines 435-440 Link Here
435
        connect_manager_signals (monitor);
456
        connect_manager_signals (monitor);
436
457
437
        _gs_monitor_update_from_prefs (monitor, monitor->priv->prefs);
458
        _gs_monitor_update_from_prefs (monitor, monitor->priv->prefs);
459
460
	XLockDisplay (GDK_DISPLAY());
461
	monitor->priv->have_xtest = (XTestQueryExtension (GDK_DISPLAY(), &a, &b, &c, &d) == True);
462
	if (monitor->priv->have_xtest != FALSE)
463
	{
464
		monitor->priv->keycode1 = XKeysymToKeycode (GDK_DISPLAY(), XK_Alt_L);
465
		if (monitor->priv->keycode1 == 0) {
466
			g_warning ("monitor->priv->keycode1 not existant");
467
		}
468
		monitor->priv->keycode2 = XKeysymToKeycode (GDK_DISPLAY(), XK_Alt_R);
469
		if (monitor->priv->keycode2 == 0) {
470
			monitor->priv->keycode2 = XKeysymToKeycode (GDK_DISPLAY(), XK_Alt_L);
471
			if (monitor->priv->keycode2 == 0) {
472
				g_warning ("monitor->priv->keycode2 not existant");
473
			}
474
		}
475
		monitor->priv->keycode = &monitor->priv->keycode1;
476
	}
477
	XUnlockDisplay (GDK_DISPLAY());
438
}
478
}
439
479
440
static void
480
static void
(-)gnome-screensaver-2.28.0/src/Makefile.am (+1 lines)
Lines 213-218 Link Here
213
gnome_screensaver_LDADD =		\
213
gnome_screensaver_LDADD =		\
214
	$(GNOME_SCREENSAVER_LIBS)	\
214
	$(GNOME_SCREENSAVER_LIBS)	\
215
	$(SAVER_LIBS)			\
215
	$(SAVER_LIBS)			\
216
	-lXtst			\
216
	$(NULL)
217
	$(NULL)
217
218
218
gnome_screensaver_LDFLAGS = -export-dynamic
219
gnome_screensaver_LDFLAGS = -export-dynamic
(-)gnome-screensaver-2.28.0/src/Makefile.in (+1 lines)
Lines 550-555 Link Here
550
gnome_screensaver_LDADD = \
550
gnome_screensaver_LDADD = \
551
	$(GNOME_SCREENSAVER_LIBS)	\
551
	$(GNOME_SCREENSAVER_LIBS)	\
552
	$(SAVER_LIBS)			\
552
	$(SAVER_LIBS)			\
553
	-lXtst			\
553
	$(NULL)
554
	$(NULL)
554
555
555
gnome_screensaver_LDFLAGS = -export-dynamic
556
gnome_screensaver_LDFLAGS = -export-dynamic

Return to bug 288706