← Back to team overview

dx-packages team mailing list archive

[Bug 401809] Re: notify-osd cannot detect panel with gtk 2.17.4

 

** Project changed: notify-osd => notify-osd (Ubuntu)

-- 
You received this bug notification because you are a member of DX
Packages, which is subscribed to notify-osd in Ubuntu.
Matching subscriptions: dx-packages
https://bugs.launchpad.net/bugs/401809

Title:
  notify-osd cannot detect panel with gtk 2.17.4

Status in “notify-osd” package in Ubuntu:
  Fix Released

Bug description:
  With a multihead configuration, left (primary) monitor being
  1280x1024, and right monitor being 1280x800, aligned at their bases,
  notifications do not appear. This is because notify-osd places the
  notifications in the top right corner, which is not displayed by the
  secondary monitor, since it's aligned at the bases. The panel is at
  the top of the left monitor.

  The reason for this is that notify-osd cannot detect the panel when libgtk 2.17.4 is installed, as shown by the following debug message:
  (notify-osd:30917): Gdk-CRITICAL **: gdk_region_destroy: assertion `region != NULL' failed
  ** (notify-osd:30917): DEBUG: [2009-07-21T00:06:08-00:00, notify-send, id:0, icon:] bla

  
  ** (notify-osd:30917): DEBUG: selecting monitor 0 at (0,0) - 1280x1024
  ** (notify-osd:30917): DEBUG: no panel detetected; using workarea fallback
  ** (notify-osd:30917): DEBUG: top corner at: 2295, 23

  The offending snippet of code is this (in _window_look_for_top_panel_attributes, in src/defaults.c):
          /* discard dialog windows like panel properties or the applet directory... */
         if (gdk_window_get_type_hint (win)
             != GDK_WINDOW_TYPE_HINT_DOCK)
                  goto failed;

  For some reason, as of gtk 2.17.4, gdk_window_get_type_hint returns
  GDK_WINDOW_TYPE_HINT_NORMAL for all windows that don't belong to the
  calling application, and this broke notify-osd's method of looking for
  a panel.

  The part of the code in GDK which causes GDK_WINDOW_TYPE_HINT_NORMAL to be returned is this (in gdk_window_get_type_hint(), in gdk/x11/gdkwindow-x11.c):
    if (GDK_WINDOW_DESTROYED (window) ||
         !WINDOW_IS_TOPLEVEL (window))
       return GDK_WINDOW_TYPE_HINT_NORMAL;

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/notify-osd/+bug/401809/+subscriptions