[maemo-commits] [maemo-commits] r18128 - in projects/haf/trunk/libmatchbox2: . debian matchbox/core

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Tue Apr 21 18:23:41 EEST 2009
Author: kihamala
Date: 2009-04-21 18:23:38 +0300 (Tue, 21 Apr 2009)
New Revision: 18128

Modified:
   projects/haf/trunk/libmatchbox2/ChangeLog
   projects/haf/trunk/libmatchbox2/debian/changelog
   projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.c
Log:
patch from Michal Maruska for WM_TAKE_FOCUS protocol


Modified: projects/haf/trunk/libmatchbox2/ChangeLog
===================================================================
--- projects/haf/trunk/libmatchbox2/ChangeLog	2009-04-21 14:52:55 UTC (rev 18127)
+++ projects/haf/trunk/libmatchbox2/ChangeLog	2009-04-21 15:23:38 UTC (rev 18128)
@@ -1,3 +1,10 @@
+2009-04-21  Kimmo Hämäläinen  <kimmo.hamalainen at nokia.com>
+
+	Patch from Michal Maruska for handling WM_TAKE_FOCUS protocol.
+
+	* matchbox/core/mb-wm-client-base.c (mb_wm_client_base_focus):
+	Send WM_TAKE_FOCUS ClientMessage if the window expects that.
+
 2009-04-17  Kimmo Hämäläinen  <kimmo.hamalainen at nokia.com>
 
 	Release 0.2.33

Modified: projects/haf/trunk/libmatchbox2/debian/changelog
===================================================================
--- projects/haf/trunk/libmatchbox2/debian/changelog	2009-04-21 14:52:55 UTC (rev 18127)
+++ projects/haf/trunk/libmatchbox2/debian/changelog	2009-04-21 15:23:38 UTC (rev 18128)
@@ -1,6 +1,8 @@
 matchbox-window-manager-2 (0.2.34-1~unreleased) unstable; urgency=low
 
-  * writeme
+  * Patch from Michal Maruska for supporting WM_TAKE_FOCUS protocol.
+  * Fixes: NB#111307 - WM: implement WM_TAKE_FOCUS, as XEmbed implem. in Gtk
+    relies on it
 
  -- Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>  Fri, 17 Apr 2009 11:15:27 +0300
 

Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.c
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.c	2009-04-21 14:52:55 UTC (rev 18127)
+++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.c	2009-04-21 15:23:38 UTC (rev 18128)
@@ -788,8 +788,30 @@
 
   mb_wm_util_trap_x_errors ();
 
-  XSetInputFocus(wm->xdpy, xwin, RevertToPointerRoot, CurrentTime);
+  if (client->window->protos & MBWMClientWindowProtosFocus)
+    {
+      XClientMessageEvent ev;
 
+      ev.type = ClientMessage;
+      ev.window = xwin;           /* our window! */
+
+      ev.message_type = wm->atoms[MBWM_ATOM_WM_PROTOCOLS];
+
+      ev.format = 32;
+      ev.data.l[0] = wm->atoms[MBWM_ATOM_WM_TAKE_FOCUS];
+      ev.data.l[1] = CurrentTime;
+
+      MBWM_NOTE (CLIENT, "sending XEvent WM_TAKE_FOCUS to %x", xwin);
+
+      XSendEvent(wm->xdpy, xwin, False, 0L, (XEvent *)&ev);
+    }
+  else
+    {
+      MBWM_NOTE (CLIENT, "calling XSetInputFocus directly for %x", xwin);
+
+      XSetInputFocus(wm->xdpy, xwin, RevertToPointerRoot, CurrentTime);
+    }
+
   XChangeProperty(wm->xdpy, wm->root_win->xwindow,
 		  wm->atoms[MBWM_ATOM_NET_ACTIVE_WINDOW],
 		  XA_WINDOW, 32, PropModeReplace,


More information about the maemo-commits mailing list