Cosimo Cecchi
fde3d5afe8
window: don't change bottom margin for automatic CSD
...
We'll use a style class to be able to give this a different appearance,
but for the time being we don't really need to give this such different
margin.
https://bugzilla.gnome.org/show_bug.cgi?id=706592
2013-08-23 20:17:24 -04:00
Jasper St. Pierre
51f229519d
gtkwindow: Enable CSD when windows set a titlebar
...
https://bugzilla.gnome.org/show_bug.cgi?id=706529
2013-08-22 09:33:08 -04:00
Jasper St. Pierre
a2eafe2f57
gtkwindow: Disable CSD if we aren't running under a supported WM
...
Also, split the checks for CSD out into a separate function.
https://bugzilla.gnome.org/show_bug.cgi?id=706529
2013-08-22 09:33:00 -04:00
Jasper St. Pierre
7462de8fba
gtkwindow: Split code that detects if we want CSD out
...
This will get a bit more complex when we enable CSD for custom headerbars
https://bugzilla.gnome.org/show_bug.cgi?id=706529
2013-08-22 09:25:39 -04:00
Jasper St. Pierre
a95cabd787
gtkwindow: Have a separate "titlebar" pointer for decorations we create ourselves
...
This cleans up the code a bit.
https://bugzilla.gnome.org/show_bug.cgi?id=706529
2013-08-22 09:25:39 -04:00
Jasper St. Pierre
cae2b697ef
gtkwindow: Rename title_icon, etc. to titlebar_icon
...
"title_box" is used for both a custom header bar and for a titlebar.
Since we want to help differentiate these cases in the code, rename
everything titlebar-internal to use "titlebar_".
https://bugzilla.gnome.org/show_bug.cgi?id=706529
2013-08-22 09:25:39 -04:00
Matthias Clasen
624ec0fb7d
Add a style class for context menus
...
Attached widgets inherit from the style of the widget they are
attached to. This can sometimes have unintended consequences,
like a context menu in the main view of gedit inheriting the font
that is configured for documents, or the context menu of the preview
in the font chooser coming up with humongous font size.
To fix this problem, we introduce a context menu style class
and use it for all menus that are used like that. The theme
can then set a font for this style class.
https://bugzilla.gnome.org/show_bug.cgi?id=697127
2013-08-18 13:46:48 -04:00
Stef Walter
6a837c668a
window: Some protection against nested set_focus() calls
...
Since set_focus() can triger events, have a check to make
sure state is still valid before firing is-focus signal.
https://bugzilla.gnome.org/show_bug.cgi?id=706152
2013-08-17 09:55:27 +02:00
Cosimo Cecchi
9896b9960d
window: set GTK_STYLE_CLASS_TITLEBAR to custom titles
...
When a custom title is added to a GtkWindow, add the
GTK_STYLE_CLASS_TITLEBAR to it, so the theme can apply the default rules
for its style.
https://bugzilla.gnome.org/show_bug.cgi?id=706045
2013-08-16 23:12:23 -04:00
Cosimo Cecchi
3ea0e4a019
stylecontext: add GTK_STYLE_CLASS_TITLEBAR define
...
For consistency with the other stock style classes.
https://bugzilla.gnome.org/show_bug.cgi?id=706045
2013-08-16 23:12:22 -04:00
Matthias Clasen
35a4bba902
csd: Implement middle-click action for titlebar
...
The default middle-click action on the titlebar should be to lower
the window. Implement that.
https://bugzilla.gnome.org/show_bug.cgi?id=705809
2013-08-13 18:24:37 -04:00
Matthias Clasen
9463c78bac
GtkWindow: fix an init/finalize asymmetry
...
Make sure we always deal with the same screen when
connecting / disconnecting the theme-variant changed handler.
Pointed out by Morten Welinder in
https://bugzilla.gnome.org/show_bug.cgi?id=705640
2013-08-13 17:44:04 -04:00
Jasper St. Pierre
8818d8a19b
gtkwindow: Export our custom frame extents
...
This allows CSD windows to be maximized, tiled, and constrained
properly.
https://bugzilla.gnome.org/show_bug.cgi?id=705765
2013-08-13 10:38:49 -04:00
Alexandre Quessy
9fb1eb2a09
fix a typo in a comment in gtkwindow.c
2013-07-27 10:18:35 -04:00
Matthias Clasen
2f1fa7cdc3
Drop some unnecessary includes
...
Drop includes of deprecated headers where they are
no longer needed.
2013-07-19 22:32:23 -04:00
Matthias Clasen
0aa57d26b5
Move wholly deprecated classes to gtk/deprecated/
...
We've recently a number of classes wholly. For these cases,
move the headers and sources to gtk/deprecated/ and adjust
Makefiles and includes accordingly.
Affected classes:
GtkAction
GtkActionGroup
GtkActivatable
GtkIconFactory
GtkImageMenuItem
GtkRadioAction
GtkRecentAction
GtkStock
GtkToggleAction
GtkUIManager
2013-07-19 21:39:47 -04:00
Emmanuele Bassi
0899ef7cc9
gtk: Use new macros for defining private data
...
https://bugzilla.gnome.org/show_bug.cgi?id=702996
2013-07-09 09:30:02 +01:00
William Jon McCann
c9bfd12d2f
Deprecate and hardcode the value of visible-focus setting
...
Just use the default value of AUTOMATIC and make it just work.
2013-07-08 15:01:33 -04:00
Matthias Clasen
e5b51050c6
csd: Fix up close buttons
...
Must pass the window as first argument to the signal handler.
2013-07-06 23:11:19 -04:00
Matthias Clasen
c0c752fab1
Cosmetics
2013-07-06 23:11:19 -04:00
Matthias Clasen
ffadfbf322
Don't prematurely mark window as realized
...
Other code assumes that the widget has a window if it is realized.
Since we might trigger such code indirectly from gtk_window_realize,
don't mark the window as realized before we've registered its window.
2013-07-05 17:15:31 -04:00
Matthias Clasen
6bcf8a2584
Cosmetic cleanups
...
Avoid some unnecessary casts.
2013-07-05 15:53:30 -04:00
Matthias Clasen
3982532145
csd: hide invisible borders when tiled or fullscreen
...
This is the expected behavior, and matches what mutter does.
2013-07-05 15:53:30 -04:00
Matthias Clasen
776111fadf
csd: fix a resizing artifacts when unmaximizing
...
When using Super-up/down to maximize and unmaximize a csd window,
the titlebar and content was not picking up the window borders.
2013-07-05 15:53:30 -04:00
Matthias Clasen
c2196e596f
csd: no border when fullscreen
...
The was a missing fullscreen check in get_decoration_size was causing
the window background to have a transparent border when fullscreen.
2013-07-05 15:53:30 -04:00
Alexander Larsson
6bf32999b1
widget: Track when the window scale factor changes and notify
...
The scale-factor property on the widgets will be notified, and the
scale will change on the style property, causing us to pick up
new css assets.
2013-07-03 14:34:13 +02:00
Matthias Clasen
328f221b5c
csd: Improve window button handling
...
Group the buttons on each side in a box, and give them different
style classes, so themes can differentiate (this is partially a
workaround for limitations in our css selectors). The boxes also
let us add a margin below the buttons, without affecting the
allocation of the buttons themselves.
2013-06-29 19:00:40 -04:00
Matthias Clasen
534a7a9397
csd: use the correct icon name for close button
...
The icon is called window-close-symbolic.
2013-06-29 19:00:40 -04:00
Matthias Clasen
da55c86d3f
csd: Use a dedicated style class for window buttons
...
This allows themes to differentiate between regular buttons
in a title bar, and window buttons.
2013-06-29 19:00:39 -04:00
Matthias Clasen
cacac4f85b
csd: Improve the window title
...
Manually create the label, so that we can set its margins.
2013-06-29 19:00:39 -04:00
Matthias Clasen
c73b48f28a
Add a gtk_window_close function
...
This is useful when adding close buttons in custom titlebars.
2013-06-28 22:19:15 -04:00
William Jon McCann
b86588e9f5
Deprecate GtkImageMenuItem
...
Use GtkMenuItem for menus with only text or GMenu for those
with icons for "nouns" and just text for "verbs".
2013-06-27 18:48:46 -04:00
William Jon McCann
7e3a494fac
Deprecate and ignore gtk-enable-mnemonics and gtk-auto-mnemonics" properties
...
They are both enabled by default.
2013-06-26 11:16:12 -04:00
Matthias Clasen
65f0e194e0
Fix a small memory leak
2013-06-15 23:35:25 -04:00
Benjamin Otte
4e50596b37
window: Call size_allocate() to allocate a size
...
Don't call gtk_container_resize_children().
https://bugzilla.gnome.org/show_bug.cgi?id=700185
2013-05-30 19:28:54 +02:00
Matthias Clasen
cbe5a3a590
Add a tiled window state
...
This information is needed to draw client-side decorations
properly in this state.
https://bugzilla.gnome.org/show_bug.cgi?id=696001
2013-05-27 13:31:28 -04:00
Matthias Clasen
fc1ff40296
csd: Fix handling of titlebar height
...
gtk_widget_get_allocated_height returns the adjusted
allocation, so we can't use it as measure for how much
room to leave when drawing the window background.
2013-05-25 21:02:00 -04:00
Matthias Clasen
f83af03579
Avoid shadowing a variable
...
I don't think this broke anything, but it is just inviting
confusion.
2013-05-25 13:17:57 -04:00
Matthias Clasen
7052d4071c
csd: Properly dispose custom titlebars
...
gtk_bin_remove can't handle internal children, so we have
to unset the titlebar widget before chaining up in dispose.
https://bugzilla.gnome.org/show_bug.cgi?id=700054
2013-05-12 21:01:59 -04:00
Matthias Clasen
d31391b0c7
csd: Ignore titlebars when hidden
...
We were not drawing the content background in the titlebar
area when fullscreen, and were still treating clicks there
as if they were on the titlebar.
2013-05-12 21:01:59 -04:00
Matthias Clasen
759f223396
csd: Manage visibility of custom titlebars
...
We should hide custom titlebars when in fullscreen mode, just
as we do for non-custom titlebars.
https://bugzilla.gnome.org/show_bug.cgi?id=700053
2013-05-12 21:01:59 -04:00
Matthias Clasen
42ee21e34c
Make gtk_window_resize work again
...
This hunk of code was lost by accident in the previous commit.
2013-05-11 19:44:57 -04:00
Matthias Clasen
fc10ee8d4a
GtkWindow: default size is only for initial map
...
Bring back need_default_size. We need it to preserve this
documented behavior:
The default size of a window only affects the first time a window is
shown; if a window is hidden and re-shown, it will remember the size
it had prior to hiding, rather than using the default size.
With this patch, all of the window sizing tests in
gtk/tests/window pass again.
2013-05-11 18:49:51 -04:00
Matthias Clasen
3b4804bbf1
Always use gint for border_width
...
This avoids an evil trap when doing MAX (..., ... - 2 * border_width)
and the expression on the right gets promoted to unsigned, instead
of going negative as you would expect.
https://bugzilla.gnome.org/show_bug.cgi?id=699633
2013-05-04 19:21:56 -04:00
Ignacio Casal Quinteiro
38688cad00
window: handle titlebar property for the buildable interface
2013-05-04 23:04:55 +02:00
Benjamin Otte
43e6b3aa03
window: Handle attach widget disappearing without weak pointers
...
Fixes the window not emitting a "notify::attached-to" signal when the
attach-widget goes away.
2013-05-02 16:26:37 +02:00
Matthias Clasen
fb08a26acd
GtkWindow: use a weak ref to keep track of attach_widget
...
Taking a full reference of the attach widget creates a reference
cycle, and keeps the attach_widget alive longer than it should.
2013-05-02 08:01:14 -04:00
Benjamin Otte
2d29c4a43f
window: last size is more important than default size
...
reorder size computation code to reflect that.
https://bugzilla.gnome.org/show_bug.cgi?id=696882
2013-05-01 16:41:12 +02:00
Benjamin Otte
01f7ed1d07
window: Deprecate gtk_window_reshow_with_initial_size()
2013-05-01 16:41:12 +02:00
Cosimo Cecchi
009aadf378
window: remove unused code
...
We don't need to add these style classes.
2013-04-22 18:10:22 -04:00