1. 11 Apr, 2018 1 commit
    • Benjamin Otte's avatar
      widget: Add a frameclock_connected boolean · b47bdda2
      Benjamin Otte authored
      ... and use it to not connect anything to the frameclock if it isn't
      set.
      
      This gets around the problem that the frame clock is disconnected before
      GtkWidgetClass.unrealize() is called but the widget is still marked as
      realized and the frame clock is available during the vfunc, which makes
      calls like gtk_widget_queue_resize() reconnect to the frame clock.
      
      Closes #168
      b47bdda2
  2. 27 Jun, 2016 1 commit
  3. 09 Jun, 2016 1 commit
  4. 14 May, 2016 1 commit
    • Benjamin Otte's avatar
      widget: No longer postpone style-updated on unrealized widgets · ddcf4702
      Benjamin Otte authored
      GTK used to not emit GtkWidget::style-updated on widgets that weren't
      realized. This sped up construction of complex widgetry in the early
      days of GTK3 where we instantly invalidated on every change.
      We don't do that anymore, so in theory (and in my limited testing with
      widget-factory) this shouldn't be a prolem anymore.
      
      What is a problem though is that postponing style-updated leads to 2
      problems:
      (1) Unrealized widgets will not emit style-updated which may cause them
          to not properly update their state and return wrong values from
          get_preferred_width/height() etc
      (2) Emitting style-updated during realize can happen too late.
          When a widget is not made child-visible by its parent (common
          examples: notebook, paned) it will also not be realized when the
          parent is initially shown. However, when they get realized later
          (after a resize of the parent), they will emit style-updated (and
          potentially queue a resize) during size-allocate.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=765700
      ddcf4702
  5. 06 May, 2016 3 commits
  6. 19 Jan, 2016 2 commits
    • Carlos Garnacho's avatar
      gtk: Add private gtk_widget_reset_controllers() · 2b703b61
      Carlos Garnacho authored
      This is a one-shot call that can be called on the places we
      know we're taking input away.
      2b703b61
    • Benjamin Otte's avatar
      widget: Redo drawing code · 580ea227
      Benjamin Otte authored
      Previously, we had a special cae to draw subwindows of widgets.
      
      This is not necessary as conformant widgets should be able to properly
      render themselves when all windows need to be painted.
      From now on assume that is the case.
      
      We therefore paint nonnative GDK windows "inline" by just returning TRUE
      for gtk_cairo_should_draw_window() for those windows.
      
      This speeds up hilighting different rows in the listbox gtk-demo example
      tremendously (by a factor of 10 or more) as the previous code was
      O(<number of non-window subwidgets> *
      <number of subwindows>) which in the listbox example were ~15,000 and
      ~2,000 respectively.
      580ea227
  7. 18 Dec, 2015 1 commit
  8. 03 Dec, 2015 1 commit
  9. 03 Nov, 2015 1 commit
  10. 28 Oct, 2015 8 commits
  11. 28 Sep, 2015 1 commit
  12. 23 Sep, 2015 1 commit
  13. 13 Sep, 2015 5 commits
    • Matthias Clasen's avatar
      Drop GtkWidgetAuxInfo · 8a540ea0
      Matthias Clasen authored
      Merge it into GtkWidgetPrivate. In my measurements, about half
      of all widgets have a non-default auxinfo struct, and we use this
      information in size allocation, so it is nice to avoid the gdata
      overhead.
      8a540ea0
    • Matthias Clasen's avatar
      Move font map to qdata · b355b07c
      Matthias Clasen authored
      This is very rarely used, lets not reserve space for it
      in every widget.
      b355b07c
    • Matthias Clasen's avatar
      Move font options to gdata · 70a22819
      Matthias Clasen authored
      This is very rarely used, lets not reserve space for it in
      every widget.
      70a22819
    • Matthias Clasen's avatar
      Move action muxer to gdata · b1665828
      Matthias Clasen authored
      Most widgets don't have their own, and we don't access them
      very frequently.
      b1665828
    • Matthias Clasen's avatar
      Move widget paths to gdata · e4de412f
      Matthias Clasen authored
      We only use widget paths for a few widgets nowadays (notebook,
      treeview, pathbar, combobox), so we can save some space by
      not having this field in GtkWidgetPrivate.
      e4de412f
  14. 12 Sep, 2015 4 commits
  15. 09 Sep, 2015 1 commit
  16. 07 Sep, 2015 2 commits
  17. 01 Jul, 2015 1 commit
  18. 24 Mar, 2015 1 commit
    • Benjamin Otte's avatar
      cssnode: Clear widget path more aggressively · fdc620cd
      Benjamin Otte authored
      When recomputing CSS, we need a correct widget path in the fallback mode
      where we're still using widget paths.
      So we need to invalidate it everytime it actually changes, and not just
      when emitting the style-updated signal.
      
      Fixes css-match-regions reftest.
      fdc620cd
  19. 18 Mar, 2015 2 commits
  20. 05 Mar, 2015 1 commit
  21. 02 Mar, 2015 1 commit
    • Carlos Garnacho's avatar
      gtkwindow: Move window dragging to a standalone drag gesture · 13e22e20
      Carlos Garnacho authored
      The gesture is hooked to the capture phase, so it works for buttons in
      header bars and whatnot. In order to be friendly to the widget it is
      capturing events from, an ugly hack is in place to avoid capturing
      events when the target widget has a gesture that would consume motion
      events.
      13e22e20