Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 664998
Collapse All | Expand All

(-)a/gdk/x11/gdkevents-x11.c (-10 / +10 lines)
Lines 621-628 gdk_check_wm_state_changed (GdkWindow *window) Link Here
621
    do_net_wm_state_changes (window);
621
    do_net_wm_state_changes (window);
622
}
622
}
623
623
624
#define HAS_FOCUS(toplevel)                           \
624
#define APPEARS_FOCUSED(toplevel)                           \
625
  ((toplevel)->has_focus_window || (toplevel)->has_pointer_focus)
625
  ((toplevel)->has_focus || (toplevel)->has_focus_window || (toplevel)->has_pointer_focus)
626
626
627
static void
627
static void
628
generate_focus_event (GdkWindow *window,
628
generate_focus_event (GdkWindow *window,
Lines 1344-1354 gdk_event_translate (GdkDisplay *display, Link Here
1344
1344
1345
	  if (xevent->xcrossing.focus && !toplevel->has_focus_window)
1345
	  if (xevent->xcrossing.focus && !toplevel->has_focus_window)
1346
	    {
1346
	    {
1347
	      gboolean had_focus = HAS_FOCUS (toplevel);
1347
	      gboolean had_focus = APPEARS_FOCUSED (toplevel);
1348
	      
1348
	      
1349
	      toplevel->has_pointer_focus = TRUE;
1349
	      toplevel->has_pointer_focus = TRUE;
1350
	      
1350
	      
1351
	      if (HAS_FOCUS (toplevel) != had_focus)
1351
	      if (APPEARS_FOCUSED (toplevel) != had_focus)
1352
		generate_focus_event (window, TRUE);
1352
		generate_focus_event (window, TRUE);
1353
	    }
1353
	    }
1354
	}
1354
	}
Lines 1441-1451 gdk_event_translate (GdkDisplay *display, Link Here
1441
1441
1442
	  if (xevent->xcrossing.focus && !toplevel->has_focus_window)
1442
	  if (xevent->xcrossing.focus && !toplevel->has_focus_window)
1443
	    {
1443
	    {
1444
	      gboolean had_focus = HAS_FOCUS (toplevel);
1444
	      gboolean had_focus = APPEARS_FOCUSED (toplevel);
1445
	      
1445
	      
1446
	      toplevel->has_pointer_focus = FALSE;
1446
	      toplevel->has_pointer_focus = FALSE;
1447
	      
1447
	      
1448
	      if (HAS_FOCUS (toplevel) != had_focus)
1448
	      if (APPEARS_FOCUSED (toplevel) != had_focus)
1449
		generate_focus_event (window, FALSE);
1449
		generate_focus_event (window, FALSE);
1450
	    }
1450
	    }
1451
	}
1451
	}
Lines 1523-1529 gdk_event_translate (GdkDisplay *display, Link Here
1523
      
1523
      
1524
      if (toplevel)
1524
      if (toplevel)
1525
	{
1525
	{
1526
	  gboolean had_focus = HAS_FOCUS (toplevel);
1526
	  gboolean had_focus = APPEARS_FOCUSED (toplevel);
1527
	  
1527
	  
1528
	  switch (xevent->xfocus.detail)
1528
	  switch (xevent->xfocus.detail)
1529
	    {
1529
	    {
Lines 1569-1575 gdk_event_translate (GdkDisplay *display, Link Here
1569
	      break;
1569
	      break;
1570
	    }
1570
	    }
1571
1571
1572
	  if (HAS_FOCUS (toplevel) != had_focus)
1572
	  if (APPEARS_FOCUSED (toplevel) != had_focus)
1573
	    generate_focus_event (window, TRUE);
1573
	    generate_focus_event (window, TRUE);
1574
	}
1574
	}
1575
      break;
1575
      break;
Lines 1582-1588 gdk_event_translate (GdkDisplay *display, Link Here
1582
      
1582
      
1583
      if (toplevel)
1583
      if (toplevel)
1584
	{
1584
	{
1585
	  gboolean had_focus = HAS_FOCUS (toplevel);
1585
	  gboolean had_focus = APPEARS_FOCUSED (toplevel);
1586
	    
1586
	    
1587
	  switch (xevent->xfocus.detail)
1587
	  switch (xevent->xfocus.detail)
1588
	    {
1588
	    {
Lines 1620-1626 gdk_event_translate (GdkDisplay *display, Link Here
1620
	      break;
1620
	      break;
1621
	    }
1621
	    }
1622
1622
1623
	  if (HAS_FOCUS (toplevel) != had_focus)
1623
	  if (APPEARS_FOCUSED (toplevel) != had_focus)
1624
	    generate_focus_event (window, FALSE);
1624
	    generate_focus_event (window, FALSE);
1625
	}
1625
	}
1626
      break;
1626
      break;

Return to bug 664998