Matthias Clasen
aa1435b741
Include CSD titlebar in focus chain
...
At least for header bars, there's often application controls
in this area, which should be included in the focus chain.
We make it so that the initial focus avoids the titlebar,
but tabbing around will eventually get there.
https://bugzilla.gnome.org/show_bug.cgi?id=708067
2013-09-16 14:38:38 -04:00
Matthias Clasen
d632474b74
Don't pass NULL to gdk_window_set_title
...
That is not allowed. This is fallout from a recent change
that makes GtkWindow listen for title changes in its
headerbar.
2013-09-16 13:07:18 -04:00
Alejandro Piñeiro
5045e1a91b
GtkWindow: keep sync the title with own titlebar
...
Before this change, both titles were synced only if
gtk_window_set_title was called. Now both are synced
also calling gtk_header_bar_set_title
2013-09-13 18:08:58 +02:00
Jasper St. Pierre
de1f5b8bb3
gtkwindow: Don't set an opaque region if the window is app-paintable
...
This means the background is effectively unused. This fixes bad drawing
errors with cc-rr-labeller and potentially also notify-osd.
2013-08-31 15:53:10 -04:00
Emmanuele Bassi
889e63faed
headerbar: Remove hpadding and vpadding properties
...
We really want these to be set by the theme, not programmatically.
https://bugzilla.gnome.org/show_bug.cgi?id=706929
2013-08-29 14:39:38 +01:00
Claudio Saavedra
343a259e4a
gtkwindow: fix a critical warning
...
Do not map the title box if it's not visible.
2013-08-28 20:10:38 +03:00
Jasper St. Pierre
3c2c3ab6f9
gtkwindow: Calculate the opaque window based off of the style
...
https://bugzilla.gnome.org/show_bug.cgi?id=706922
2013-08-28 10:33:58 -04:00
Jasper St. Pierre
64cf8b731e
gtkwindow: Consistently set the style classes for window-frame
...
In one place, we forgot to remove the BACKGROUND style class before
adding window-frame. Add a helper method so these are all the same.
https://bugzilla.gnome.org/show_bug.cgi?id=706922
2013-08-28 10:33:57 -04:00
Chun-wei Fan
c8cad49108
gtk/gtkwindow.c: Fix build on non-X11
...
There were some code added to this file that is meant for the X11 backend,
but they are being unconditionally built. Add build-time checks for the
X11 backend for these to fix the build on non-X11 platforms.
2013-08-26 21:32:09 +08:00
Matthias Clasen
7e4bcf9102
Add workspace handling to the window menu
...
The reimplements the current mutter window menu for
workspace changes.
https://bugzilla.gnome.org/show_bug.cgi?id=706323
2013-08-24 00:53:00 -04:00
Matthias Clasen
8f69721ed4
Add an 'Always on Top' item to the csd window menu
...
We want to make the csd window menu as similar as possible to the
mutter window menu.
https://bugzilla.gnome.org/show_bug.cgi?id=706323
2013-08-23 22:46:04 -04:00
Cosimo Cecchi
6928aedb2c
window: add a style class when we automatically create the titlebar
...
To distinguish it from custom titlebars added from applications.
https://bugzilla.gnome.org/show_bug.cgi?id=706592
2013-08-23 20:17:24 -04:00
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