Assume gravity works. (Anything else we have to take our chances with).
Mon Feb 2 19:04:17 2004 Soeren Sandmann <sandmann@daimi.au.dk> * gdk/x11/gdkwindow-x11.c: Assume gravity works. (Anything else we have to take our chances with). (Bug 97510)
This commit is contained in:
		
				
					committed by
					
						
						Søren Sandmann Pedersen
					
				
			
			
				
	
			
			
			
						parent
						
							ff364586da
						
					
				
				
					commit
					d9d3cf5eda
				
			
							
								
								
									
										12
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								ChangeLog
									
									
									
									
									
								
							@ -1,11 +1,21 @@
 | 
				
			|||||||
 | 
					Mon Feb  2 19:04:17 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gdk/x11/gdkwindow-x11.c: Assume gravity works. (Anything else
 | 
				
			||||||
 | 
						we have to take our chances with).
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						(Bug 97510)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mon Feb  2 18:45:28 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
 | 
					Mon Feb  2 18:45:28 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Fix bug 110224.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gdk/x11/gdkfont-x11.c (gdk_font_from_description_for_display):
 | 
						* gdk/x11/gdkfont-x11.c (gdk_font_from_description_for_display):
 | 
				
			||||||
	Remove unused variable 'result'
 | 
						Remove unused variable 'result'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gdk/x11/xsettings-client.[ch]: Add new set_grab/ungrab_func() functions.
 | 
						* gdk/x11/xsettings-client.[ch]: Add new set_grab/ungrab_func() functions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gdk/x11/gdkevents-x11.c (_gdk_x11_events_init_screen): Use them here
 | 
						* gdk/x11/gdkevents-x11.c (_gdk_x11_events_init_screen): Use them
 | 
				
			||||||
 | 
						here.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mon Feb  2 14:32:32 2004  Pablo Saratxaga  <pablo@mandrakesoft.com>
 | 
					Mon Feb  2 14:32:32 2004  Pablo Saratxaga  <pablo@mandrakesoft.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,11 +1,21 @@
 | 
				
			|||||||
 | 
					Mon Feb  2 19:04:17 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gdk/x11/gdkwindow-x11.c: Assume gravity works. (Anything else
 | 
				
			||||||
 | 
						we have to take our chances with).
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						(Bug 97510)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mon Feb  2 18:45:28 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
 | 
					Mon Feb  2 18:45:28 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Fix bug 110224.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gdk/x11/gdkfont-x11.c (gdk_font_from_description_for_display):
 | 
						* gdk/x11/gdkfont-x11.c (gdk_font_from_description_for_display):
 | 
				
			||||||
	Remove unused variable 'result'
 | 
						Remove unused variable 'result'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gdk/x11/xsettings-client.[ch]: Add new set_grab/ungrab_func() functions.
 | 
						* gdk/x11/xsettings-client.[ch]: Add new set_grab/ungrab_func() functions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gdk/x11/gdkevents-x11.c (_gdk_x11_events_init_screen): Use them here
 | 
						* gdk/x11/gdkevents-x11.c (_gdk_x11_events_init_screen): Use them
 | 
				
			||||||
 | 
						here.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mon Feb  2 14:32:32 2004  Pablo Saratxaga  <pablo@mandrakesoft.com>
 | 
					Mon Feb  2 14:32:32 2004  Pablo Saratxaga  <pablo@mandrakesoft.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,11 +1,21 @@
 | 
				
			|||||||
 | 
					Mon Feb  2 19:04:17 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gdk/x11/gdkwindow-x11.c: Assume gravity works. (Anything else
 | 
				
			||||||
 | 
						we have to take our chances with).
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						(Bug 97510)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mon Feb  2 18:45:28 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
 | 
					Mon Feb  2 18:45:28 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Fix bug 110224.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gdk/x11/gdkfont-x11.c (gdk_font_from_description_for_display):
 | 
						* gdk/x11/gdkfont-x11.c (gdk_font_from_description_for_display):
 | 
				
			||||||
	Remove unused variable 'result'
 | 
						Remove unused variable 'result'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gdk/x11/xsettings-client.[ch]: Add new set_grab/ungrab_func() functions.
 | 
						* gdk/x11/xsettings-client.[ch]: Add new set_grab/ungrab_func() functions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gdk/x11/gdkevents-x11.c (_gdk_x11_events_init_screen): Use them here
 | 
						* gdk/x11/gdkevents-x11.c (_gdk_x11_events_init_screen): Use them
 | 
				
			||||||
 | 
						here.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mon Feb  2 14:32:32 2004  Pablo Saratxaga  <pablo@mandrakesoft.com>
 | 
					Mon Feb  2 14:32:32 2004  Pablo Saratxaga  <pablo@mandrakesoft.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,11 +1,21 @@
 | 
				
			|||||||
 | 
					Mon Feb  2 19:04:17 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gdk/x11/gdkwindow-x11.c: Assume gravity works. (Anything else
 | 
				
			||||||
 | 
						we have to take our chances with).
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						(Bug 97510)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mon Feb  2 18:45:28 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
 | 
					Mon Feb  2 18:45:28 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Fix bug 110224.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gdk/x11/gdkfont-x11.c (gdk_font_from_description_for_display):
 | 
						* gdk/x11/gdkfont-x11.c (gdk_font_from_description_for_display):
 | 
				
			||||||
	Remove unused variable 'result'
 | 
						Remove unused variable 'result'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gdk/x11/xsettings-client.[ch]: Add new set_grab/ungrab_func() functions.
 | 
						* gdk/x11/xsettings-client.[ch]: Add new set_grab/ungrab_func() functions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gdk/x11/gdkevents-x11.c (_gdk_x11_events_init_screen): Use them here
 | 
						* gdk/x11/gdkevents-x11.c (_gdk_x11_events_init_screen): Use them
 | 
				
			||||||
 | 
						here.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mon Feb  2 14:32:32 2004  Pablo Saratxaga  <pablo@mandrakesoft.com>
 | 
					Mon Feb  2 14:32:32 2004  Pablo Saratxaga  <pablo@mandrakesoft.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,11 +1,21 @@
 | 
				
			|||||||
 | 
					Mon Feb  2 19:04:17 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gdk/x11/gdkwindow-x11.c: Assume gravity works. (Anything else
 | 
				
			||||||
 | 
						we have to take our chances with).
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						(Bug 97510)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mon Feb  2 18:45:28 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
 | 
					Mon Feb  2 18:45:28 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Fix bug 110224.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gdk/x11/gdkfont-x11.c (gdk_font_from_description_for_display):
 | 
						* gdk/x11/gdkfont-x11.c (gdk_font_from_description_for_display):
 | 
				
			||||||
	Remove unused variable 'result'
 | 
						Remove unused variable 'result'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gdk/x11/xsettings-client.[ch]: Add new set_grab/ungrab_func() functions.
 | 
						* gdk/x11/xsettings-client.[ch]: Add new set_grab/ungrab_func() functions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gdk/x11/gdkevents-x11.c (_gdk_x11_events_init_screen): Use them here
 | 
						* gdk/x11/gdkevents-x11.c (_gdk_x11_events_init_screen): Use them
 | 
				
			||||||
 | 
						here.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mon Feb  2 14:32:32 2004  Pablo Saratxaga  <pablo@mandrakesoft.com>
 | 
					Mon Feb  2 14:32:32 2004  Pablo Saratxaga  <pablo@mandrakesoft.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -190,7 +190,6 @@ gdk_display_open (const gchar *display_name)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  display_x11->leader_window_title_set = FALSE;
 | 
					  display_x11->leader_window_title_set = FALSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  display_x11->gravity_works = GDK_UNKNOWN;
 | 
					 | 
				
			||||||
  display_x11->have_render = GDK_UNKNOWN;
 | 
					  display_x11->have_render = GDK_UNKNOWN;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (_gdk_synchronize)
 | 
					  if (_gdk_synchronize)
 | 
				
			||||||
 | 
				
			|||||||
@ -77,7 +77,6 @@ struct _GdkDisplayX11
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  gboolean use_xshm;
 | 
					  gboolean use_xshm;
 | 
				
			||||||
  gboolean have_shm_pixmaps;
 | 
					  gboolean have_shm_pixmaps;
 | 
				
			||||||
  GdkTristate gravity_works;
 | 
					 | 
				
			||||||
  GdkTristate have_render;
 | 
					  GdkTristate have_render;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  /* Information about current pointer and keyboard grabs held by this
 | 
					  /* Information about current pointer and keyboard grabs held by this
 | 
				
			||||||
 | 
				
			|||||||
@ -78,7 +78,6 @@ const int _gdk_event_mask_table[21] =
 | 
				
			|||||||
const int _gdk_nenvent_masks = sizeof (_gdk_event_mask_table) / sizeof (int);
 | 
					const int _gdk_nenvent_masks = sizeof (_gdk_event_mask_table) / sizeof (int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Forward declarations */
 | 
					/* Forward declarations */
 | 
				
			||||||
static gboolean gdk_window_gravity_works          (GdkWindow  *window);
 | 
					 | 
				
			||||||
static void     gdk_window_set_static_win_gravity (GdkWindow  *window,
 | 
					static void     gdk_window_set_static_win_gravity (GdkWindow  *window,
 | 
				
			||||||
						   gboolean    on);
 | 
											   gboolean    on);
 | 
				
			||||||
static gboolean gdk_window_have_shape_ext         (GdkDisplay *display);
 | 
					static gboolean gdk_window_have_shape_ext         (GdkDisplay *display);
 | 
				
			||||||
@ -4561,69 +4560,6 @@ gdk_window_merge_child_shapes (GdkWindow *window)
 | 
				
			|||||||
#endif   
 | 
					#endif   
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Support for windows that can be guffaw-scrolled
 | 
					 | 
				
			||||||
 * (See http://www.gtk.org/~otaylor/whitepapers/guffaw-scrolling.txt)
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static gboolean
 | 
					 | 
				
			||||||
gdk_window_gravity_works (GdkWindow *window)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  GdkDisplayX11 *display_x11 = GDK_DISPLAY_X11 (GDK_DRAWABLE_DISPLAY (window));
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  if (display_x11->gravity_works == GDK_UNKNOWN)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      GdkWindowAttr attr;
 | 
					 | 
				
			||||||
      GdkWindow *parent;
 | 
					 | 
				
			||||||
      GdkWindow *child;
 | 
					 | 
				
			||||||
      gint y;
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      /* This particular server apparently has a bug so that the test
 | 
					 | 
				
			||||||
       * works but the actual code crashes it
 | 
					 | 
				
			||||||
       */
 | 
					 | 
				
			||||||
      if ((!strcmp (XServerVendor (display_x11->xdisplay),
 | 
					 | 
				
			||||||
		    "Sun Microsystems, Inc.")) &&
 | 
					 | 
				
			||||||
	  (VendorRelease (display_x11->xdisplay) == 3400))
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
	  display_x11->gravity_works = GDK_NO;
 | 
					 | 
				
			||||||
	  return FALSE;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      attr.window_type = GDK_WINDOW_TEMP;
 | 
					 | 
				
			||||||
      attr.wclass = GDK_INPUT_OUTPUT;
 | 
					 | 
				
			||||||
      attr.x = 0;
 | 
					 | 
				
			||||||
      attr.y = 0;
 | 
					 | 
				
			||||||
      attr.width = 100;
 | 
					 | 
				
			||||||
      attr.height = 100;
 | 
					 | 
				
			||||||
      attr.event_mask = 0;
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      parent = gdk_window_new (gdk_screen_get_root_window (GDK_DRAWABLE_SCREEN (window)),
 | 
					 | 
				
			||||||
			       &attr, GDK_WA_X | GDK_WA_Y);
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      attr.window_type = GDK_WINDOW_CHILD;
 | 
					 | 
				
			||||||
      child = gdk_window_new (parent, &attr, GDK_WA_X | GDK_WA_Y);
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      gdk_window_set_static_win_gravity (child, TRUE);
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      gdk_window_resize (parent, 100, 110);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      gdk_window_move (parent, 0, -10);
 | 
					 | 
				
			||||||
      gdk_window_move_resize (parent, 0, 0, 100, 100);
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      gdk_window_resize (parent, 100, 110);
 | 
					 | 
				
			||||||
      gdk_window_move (parent, 0, -10);
 | 
					 | 
				
			||||||
      gdk_window_move_resize (parent, 0, 0, 100, 100);
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      gdk_window_get_geometry (child, NULL, &y, NULL, NULL, NULL);
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      gdk_window_destroy (parent);
 | 
					 | 
				
			||||||
      gdk_window_destroy (child);
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      display_x11->gravity_works = ((y == -20) ? GDK_YES : GDK_NO);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  return (display_x11->gravity_works == GDK_YES);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
gdk_window_set_static_bit_gravity (GdkWindow *window, gboolean on)
 | 
					gdk_window_set_static_bit_gravity (GdkWindow *window, gboolean on)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -4683,10 +4619,7 @@ gdk_window_set_static_gravities (GdkWindow *window,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  if (!use_static == !private->guffaw_gravity)
 | 
					  if (!use_static == !private->guffaw_gravity)
 | 
				
			||||||
    return TRUE;
 | 
					    return TRUE;
 | 
				
			||||||
  
 | 
					
 | 
				
			||||||
  if (use_static && !gdk_window_gravity_works (window))
 | 
					 | 
				
			||||||
    return FALSE;
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  private->guffaw_gravity = use_static;
 | 
					  private->guffaw_gravity = use_static;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  if (!GDK_WINDOW_DESTROYED (window))
 | 
					  if (!GDK_WINDOW_DESTROYED (window))
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user