rpms/openoffice.org/devel openoffice.org-3.0.0.ooo93515.vcl.jrb-frames.patch, 1.1, 1.2 openoffice.org.spec, 1.1674, 1.1675

Caolan McNamara caolanm at fedoraproject.org
Mon Oct 20 15:37:47 UTC 2008


Author: caolanm

Update of /cvs/pkgs/rpms/openoffice.org/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv10167

Modified Files:
	openoffice.org-3.0.0.ooo93515.vcl.jrb-frames.patch 
	openoffice.org.spec 
Log Message:
Resolves: rhbz#466603 odd focus troubles with floating toolbar

openoffice.org-3.0.0.ooo93515.vcl.jrb-frames.patch:

Index: openoffice.org-3.0.0.ooo93515.vcl.jrb-frames.patch
===================================================================
RCS file: /cvs/pkgs/rpms/openoffice.org/devel/openoffice.org-3.0.0.ooo93515.vcl.jrb-frames.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- openoffice.org-3.0.0.ooo93515.vcl.jrb-frames.patch	5 Sep 2008 11:57:24 -0000	1.1
+++ openoffice.org-3.0.0.ooo93515.vcl.jrb-frames.patch	20 Oct 2008 15:37:46 -0000	1.2
@@ -24,16 +24,6 @@
  	g_object_set_data( G_OBJECT( m_pWindow ), "SalFrame", this );
  
      // force wm class hint
-@@ -806,7 +809,8 @@
-             gtk_window_set_decorated( GTK_WINDOW(m_pWindow), FALSE );
-         gtk_window_set_gravity( GTK_WINDOW(m_pWindow), GDK_GRAVITY_STATIC );
-         if( m_pParent && ! (m_pParent->m_nStyle & SAL_FRAME_STYLE_PLUG) )
--            gtk_window_set_transient_for( GTK_WINDOW(m_pWindow), GTK_WINDOW(m_pParent->m_pWindow) );
-+            if ((eType != GDK_WINDOW_TYPE_HINT_UTILITY) && (eType != GDK_WINDOW_TYPE_HINT_TOOLBAR))
-+                gtk_window_set_transient_for( GTK_WINDOW(m_pWindow), GTK_WINDOW(m_pParent->m_pWindow) );
-     }
-     else if( (nStyle & SAL_FRAME_STYLE_FLOAT) )
-     {
 @@ -817,6 +821,9 @@
  
      InitCommon();
@@ -44,3 +34,58 @@
      if( bDecoHandling )
      {
          gtk_window_set_resizable( GTK_WINDOW(m_pWindow), (nStyle & SAL_FRAME_STYLE_SIZEABLE) ? TRUE : FALSE );
+diff -ru vcl/unx/gtk.orig/window/gtkframe.cxx vcl/unx/gtk/window/gtkframe.cxx
+--- openoffice.org.orig/vcl/unx/gtk/window/gtkframe.cxx	2008-10-14 12:47:44.000000000 +0100
++++ openoffice.org/vcl/unx/gtk/window/gtkframe.cxx	2008-10-20 16:32:49.000000000 +0100
+@@ -791,6 +791,7 @@
+         {
+             eType = GDK_WINDOW_TYPE_HINT_UTILITY;
+             gtk_window_set_skip_taskbar_hint( GTK_WINDOW(m_pWindow), true );
++            lcl_set_accept_focus( GTK_WINDOW(m_pWindow), FALSE, true );
+         }
+         else if( (nStyle & SAL_FRAME_STYLE_OWNERDRAWDECORATION) )
+         {
+@@ -827,7 +826,7 @@
+     if( bDecoHandling )
+     {
+         gtk_window_set_resizable( GTK_WINDOW(m_pWindow), (nStyle & SAL_FRAME_STYLE_SIZEABLE) ? TRUE : FALSE );
+-        if( (nStyle & SAL_FRAME_STYLE_OWNERDRAWDECORATION) )
++        if( ( (nStyle & SAL_FRAME_STYLE_OWNERDRAWDECORATION) ) || ( (nStyle & SAL_FRAME_STYLE_TOOLWINDOW ) ) )
+             lcl_set_accept_focus( GTK_WINDOW(m_pWindow), FALSE, false );
+     }
+     
+@@ -1282,7 +1281,34 @@
+                  */
+                  m_pParent->grabPointer( TRUE, TRUE );
+             }
++
++            //For these floating windows we don't want the main window to lose focus, and metacity has...
++            // metacity-2.24.0/src/core/window.c
++            //
++            //  if ((focus_window != NULL) && XSERVER_TIME_IS_BEFORE (compare, focus_window->net_wm_user_time))
++            //  	"compare" window focus prevented by other activity
++            //
++            //  where "compare" is this window
++
++            //  which leads to...
++
++            // /* This happens for error dialogs or alerts; these need to remain on
++            // * top, but it would be confusing to have its ancestor remain
++            // * focused.
++            // */
++            // if (meta_window_is_ancestor_of_transient (focus_window, window))
++            //          "The focus window %s is an ancestor of the newly mapped "
++            //         "window %s which isn't being focused.  Unfocusing the "
++            //          "ancestor.\n",
++            //
++            // i.e. having a time < that of the toplevel frame means that the toplevel frame gets unfocused.
++            // awesome.
++
++            if( m_pParent && ( ( (m_nStyle & SAL_FRAME_STYLE_OWNERDRAWDECORATION) ) || ( (m_nStyle & SAL_FRAME_STYLE_TOOLWINDOW ) ) ) )
++                gdk_x11_window_set_user_time(GTK_WIDGET(m_pWindow)->window, gdk_x11_get_server_time (GTK_WIDGET (m_pWindow)->window));
++
+             gtk_widget_show( m_pWindow );
++
+             if( isFloatGrabWindow() )
+             {
+                 m_nFloats++;


Index: openoffice.org.spec
===================================================================
RCS file: /cvs/pkgs/rpms/openoffice.org/devel/openoffice.org.spec,v
retrieving revision 1.1674
retrieving revision 1.1675
diff -u -r1.1674 -r1.1675
--- openoffice.org.spec	16 Oct 2008 14:15:21 -0000	1.1674
+++ openoffice.org.spec	20 Oct 2008 15:37:46 -0000	1.1675
@@ -1,6 +1,6 @@
 %define oootag OOO300
 %define ooomilestone 9
-%define rh_rpm_release 4
+%define rh_rpm_release 5
 
 # rhbz#465664 jar-repacking breaks help by reordering META-INF/MANIFEST.MF
 %define __jar_repack %{nil}
@@ -3690,7 +3690,11 @@
     unopkg list --shared > /dev/null 2>&1 || :
 
 %changelog
-* Thu Oct 16 2008 Caolán McNamara <caolanm at redhat.com> - 1:3.0.0-9.5
+* Mon Oct 20 2008 Caolán McNamara <caolanm at redhat.com> - 1:3.0.0-9.5
+- Resolves: rhbz#466603 odd focus troubles with floating toolbars
+  "The focus window is an ancestor of the newly mapped
+   window which isn't being focused.  Unfocusing the "
+   ancestor". Grrr... thanks a bunch.
 - add openoffice.org-3.0.0.ooo94659.sal.magazine.patch
 - add openoffice.org-3.0.0.ooo95018.sal.fdwarnings.patch
 




More information about the scm-commits mailing list