Compare commits
135 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e2de76d465 | |||
| 0bb12749d1 | |||
| 24e1ecce23 | |||
| 86c97fd710 | |||
| 5e35d3c8de | |||
| ac931e9506 | |||
| b2e19866ea | |||
| da16947e21 | |||
| 096b49013a | |||
| a89e99b0be | |||
| c0ac3c3386 | |||
| c6a77d0f68 | |||
| 65b7fc91bd | |||
| 61f3399f98 | |||
| 4c80ac0733 | |||
| cfb5f160f2 | |||
| cd499f0abc | |||
| 3972520fbb | |||
| e6061caa7b | |||
| e6c1cbc88e | |||
| cd033e6f07 | |||
| fc8516fe75 | |||
| 29a2a65756 | |||
| a6c7889cb6 | |||
| e77b2832aa | |||
| cb750f60f9 | |||
| 386534ef1f | |||
| d94d2efc43 | |||
| 6b977e6870 | |||
| 49ec67c7eb | |||
| 2c61a52ff6 | |||
| 3b57d197cd | |||
| b1696436d1 | |||
| 361a0574dc | |||
| a263018a3e | |||
| b3580aa46a | |||
| 313738b3e9 | |||
| 960c229220 | |||
| eb26208c08 | |||
| 71256a0f94 | |||
| 5a0d718239 | |||
| 40a83ef5a6 | |||
| 95e2dc32ec | |||
| cba2ecc0cc | |||
| a6cafa1edb | |||
| e2fc198b9e | |||
| 050e139019 | |||
| 0648453339 | |||
| 505fed1383 | |||
| ada97b0928 | |||
| ae430b1b80 | |||
| a55ebcb4b0 | |||
| 1afc9bc5dc | |||
| 6e03e7e80a | |||
| 36baf9207e | |||
| 86720b014e | |||
| d79bc00345 | |||
| 3c80451b17 | |||
| af9f6fca5f | |||
| 371a3a7871 | |||
| 9749013e5f | |||
| 9ca8b71e76 | |||
| 721134b008 | |||
| fae3eaffcd | |||
| 85141bc503 | |||
| b899a78387 | |||
| 1506ba060c | |||
| 38f61dd445 | |||
| 1ed9d33d24 | |||
| c66d165676 | |||
| d553c0ae1e | |||
| 4340e977e4 | |||
| abf3d78b57 | |||
| 7719784733 | |||
| fdc620cd56 | |||
| 59579576c6 | |||
| 641e280311 | |||
| 6bd7526ee7 | |||
| aaff396e48 | |||
| d6f6a52c00 | |||
| 84d5f0e64d | |||
| c88ec37037 | |||
| 68ff82cbf2 | |||
| 81776ea3f1 | |||
| 6b1ca8b887 | |||
| a08ee01c64 | |||
| 83b6423409 | |||
| 51a434ad4b | |||
| 1abb28ec65 | |||
| 66a7636b63 | |||
| 72afa5c2ee | |||
| 6cadef7ff6 | |||
| eea16f03f5 | |||
| 6f829d4450 | |||
| 70f6faf0f1 | |||
| c723eba135 | |||
| f00f2fdf0d | |||
| a14bb5578f | |||
| fb573e58f1 | |||
| 2250cd87eb | |||
| ddf7501acd | |||
| 543eae0d76 | |||
| fbbb3d1816 | |||
| 2a444e30f7 | |||
| 4ef0c34b65 | |||
| db28b8c600 | |||
| a17d6290e4 | |||
| b55aa154e6 | |||
| 03417cf864 | |||
| c0c1774b01 | |||
| 37774928bd | |||
| e7eaca9534 | |||
| ec32d8dade | |||
| 1c007e4196 | |||
| ca41bb440d | |||
| 5c5464a469 | |||
| ad05d84897 | |||
| 955aed9227 | |||
| c16acff3ea | |||
| 03213b9509 | |||
| bae97a4c6b | |||
| 7bb3d9557f | |||
| 9e9c0a133e | |||
| 8e032622c8 | |||
| 967cb56275 | |||
| 9c2a16fb3b | |||
| d0dc1f52cc | |||
| ae21e08782 | |||
| 9ba185b749 | |||
| dd1af9bbdd | |||
| 8c8e6588dc | |||
| 4a2b44467b | |||
| 5f52a2c8c9 | |||
| 40bb2a1616 | |||
| db8e6aa497 |
+30
-6
@@ -9,8 +9,8 @@
|
||||
# set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
|
||||
|
||||
m4_define([gtk_major_version], [3])
|
||||
m4_define([gtk_minor_version], [15])
|
||||
m4_define([gtk_micro_version], [12])
|
||||
m4_define([gtk_minor_version], [17])
|
||||
m4_define([gtk_micro_version], [0])
|
||||
m4_define([gtk_interface_age], [0])
|
||||
m4_define([gtk_binary_age],
|
||||
[m4_eval(100 * gtk_minor_version + gtk_micro_version)])
|
||||
@@ -1660,12 +1660,35 @@ AM_CONDITIONAL(HAVE_COLORD, test "x$have_colord" = "xyes")
|
||||
# Check for libcanberra (only used in examples)
|
||||
##################################################
|
||||
|
||||
PKG_CHECK_MODULES(LIBCANBERRA, libcanberra-gtk3,
|
||||
have_libcanberra=yes, have_libcanberra=no)
|
||||
if test "$have_libcanberra" = "yes"; then
|
||||
AC_DEFINE(HAVE_LIBCANBERRA, 1, [define if we have libcanberra])
|
||||
AC_ARG_ENABLE(libcanberra,
|
||||
[AS_HELP_STRING([--enable-libcanberra],
|
||||
[enable libcanberra support in examples [default=auto]])],
|
||||
[enable_libcanberra="$enableval"],
|
||||
[enable_libcanberra=auto])
|
||||
|
||||
AC_MSG_CHECKING([whether to use libcanberra])
|
||||
if test "$enable_libcanberra" != "no"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
have_libcanberra=no
|
||||
if test "$enable_libcanberra" != "no"; then
|
||||
PKG_CHECK_MODULES(LIBCANBERRA, libcanberra-gtk3,
|
||||
have_libcanberra=yes, have_libcanberra=no)
|
||||
if test "$enable_libcanberra" = "yes"; then
|
||||
if test "$have_libcanberra" = "no"; then
|
||||
AC_MSG_ERROR([--enable-libcanberra specified, but not available])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$have_libcanberra" = "yes"; then
|
||||
AC_DEFINE(HAVE_LIBCANBERRA, 1, [define if we have libcanberra])
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_LIBCANBERRA, test "x$have_libcanberra" = "xyes")
|
||||
|
||||
##################################################
|
||||
# Checks for gtk-doc and docbook-tools
|
||||
##################################################
|
||||
@@ -1938,6 +1961,7 @@ echo " Print backends: $PRINT_BACKENDS"
|
||||
echo " Dynamic modules: $build_dynamic_modules"
|
||||
echo " Included immodules: $included_immodules"
|
||||
echo " colord support: $have_colord"
|
||||
echo " libcanberra support: $have_libcanberra"
|
||||
echo " Introspection: $found_introspection"
|
||||
echo " Debugging: $enable_debug"
|
||||
echo " Documentation: $enable_gtk_doc"
|
||||
|
||||
@@ -220,6 +220,9 @@ realize (GtkWidget *widget)
|
||||
{
|
||||
gtk_gl_area_make_current (GTK_GL_AREA (widget));
|
||||
|
||||
if (gtk_gl_area_get_error (GTK_GL_AREA (widget)) != NULL)
|
||||
return;
|
||||
|
||||
init_buffers (&position_buffer, NULL);
|
||||
init_shaders (&program, &mvp_location);
|
||||
}
|
||||
@@ -230,6 +233,9 @@ unrealize (GtkWidget *widget)
|
||||
{
|
||||
gtk_gl_area_make_current (GTK_GL_AREA (widget));
|
||||
|
||||
if (gtk_gl_area_get_error (GTK_GL_AREA (widget)) != NULL)
|
||||
return;
|
||||
|
||||
glDeleteBuffers (1, &position_buffer);
|
||||
glDeleteProgram (program);
|
||||
}
|
||||
@@ -271,6 +277,9 @@ static gboolean
|
||||
render (GtkGLArea *area,
|
||||
GdkGLContext *context)
|
||||
{
|
||||
if (gtk_gl_area_get_error (area) != NULL)
|
||||
return FALSE;
|
||||
|
||||
/* Clear the viewport */
|
||||
glClearColor (0.5, 0.5, 0.5, 1.0);
|
||||
glClear (GL_COLOR_BUFFER_BIT);
|
||||
|
||||
+12
-9
@@ -33,8 +33,7 @@ static GtkWidget *
|
||||
create_menu (gint depth)
|
||||
{
|
||||
GtkWidget *menu;
|
||||
GtkWidget *menuitem;
|
||||
GSList *group;
|
||||
GtkRadioMenuItem *last_item;
|
||||
char buf[32];
|
||||
int i, j;
|
||||
|
||||
@@ -42,20 +41,24 @@ create_menu (gint depth)
|
||||
return NULL;
|
||||
|
||||
menu = gtk_menu_new ();
|
||||
group = NULL;
|
||||
last_item = NULL;
|
||||
|
||||
for (i = 0, j = 1; i < 5; i++, j++)
|
||||
{
|
||||
GtkWidget *menu_item;
|
||||
|
||||
sprintf (buf, "item %2d - %d", depth, j);
|
||||
menuitem = gtk_radio_menu_item_new_with_label (group, buf);
|
||||
group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menuitem));
|
||||
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
|
||||
gtk_widget_show (menuitem);
|
||||
menu_item = gtk_radio_menu_item_new_with_label_from_widget (NULL, buf);
|
||||
gtk_radio_menu_item_join_group (GTK_RADIO_MENU_ITEM (menu_item), last_item);
|
||||
last_item = GTK_RADIO_MENU_ITEM (menu_item);
|
||||
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
|
||||
gtk_widget_show (menu_item);
|
||||
if (i == 3)
|
||||
gtk_widget_set_sensitive (menuitem, FALSE);
|
||||
gtk_widget_set_sensitive (menu_item, FALSE);
|
||||
|
||||
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (depth - 1));
|
||||
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), create_menu (depth - 1));
|
||||
}
|
||||
|
||||
return menu;
|
||||
|
||||
@@ -467,6 +467,10 @@
|
||||
<title>Index of new symbols in 3.16</title>
|
||||
<xi:include href="xml/api-index-3.16.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
<index id="api-index-3-18" role="3.18">
|
||||
<title>Index of new symbols in 3.18</title>
|
||||
<xi:include href="xml/api-index-3.18.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
|
||||
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
||||
|
||||
|
||||
@@ -2771,6 +2771,7 @@ gtk_radio_menu_item_new_with_label_from_widget
|
||||
gtk_radio_menu_item_new_with_mnemonic_from_widget
|
||||
gtk_radio_menu_item_set_group
|
||||
gtk_radio_menu_item_get_group
|
||||
gtk_radio_menu_item_join_group
|
||||
<SUBSECTION Standard>
|
||||
GTK_RADIO_MENU_ITEM
|
||||
GTK_IS_RADIO_MENU_ITEM
|
||||
|
||||
+4
-3
@@ -52,7 +52,8 @@ get_vertex_type_name (int type)
|
||||
}
|
||||
|
||||
static guint
|
||||
create_shader (int type, const char const *code)
|
||||
create_shader (int type,
|
||||
const char *code)
|
||||
{
|
||||
guint shader;
|
||||
int status;
|
||||
@@ -85,8 +86,8 @@ create_shader (int type, const char const *code)
|
||||
|
||||
static void
|
||||
make_program (GdkGLContextProgram *program,
|
||||
const char const *vertex_shader_code,
|
||||
const char const *fragment_shader_code)
|
||||
const char *vertex_shader_code,
|
||||
const char *fragment_shader_code)
|
||||
{
|
||||
guint vertex_shader, fragment_shader;
|
||||
int status;
|
||||
|
||||
@@ -142,6 +142,16 @@
|
||||
*/
|
||||
#define GDK_VERSION_3_16 (G_ENCODE_VERSION (3, 16))
|
||||
|
||||
/**
|
||||
* GDK_VERSION_3_18:
|
||||
*
|
||||
* A macro that evaluates to the 3.18 version of GDK, in a format
|
||||
* that can be used by the C pre-processor.
|
||||
*
|
||||
* Since: 3.18
|
||||
*/
|
||||
#define GDK_VERSION_3_18 (G_ENCODE_VERSION (3, 18))
|
||||
|
||||
/* evaluates to the current stable version; for development cycles,
|
||||
* this means the next stable target
|
||||
*/
|
||||
@@ -340,5 +350,19 @@
|
||||
# define GDK_AVAILABLE_IN_3_16 _GDK_EXTERN
|
||||
#endif
|
||||
|
||||
#if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_3_18
|
||||
# define GDK_DEPRECATED_IN_3_18 GDK_DEPRECATED
|
||||
# define GDK_DEPRECATED_IN_3_18_FOR(f) GDK_DEPRECATED_FOR(f)
|
||||
#else
|
||||
# define GDK_DEPRECATED_IN_3_18 _GDK_EXTERN
|
||||
# define GDK_DEPRECATED_IN_3_18_FOR(f) _GDK_EXTERN
|
||||
#endif
|
||||
|
||||
#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_3_18
|
||||
# define GDK_AVAILABLE_IN_3_18 GDK_UNAVAILABLE(3, 18)
|
||||
#else
|
||||
# define GDK_AVAILABLE_IN_3_18 _GDK_EXTERN
|
||||
#endif
|
||||
|
||||
#endif /* __GDK_VERSION_MACROS_H__ */
|
||||
|
||||
|
||||
+3
-3
@@ -30,13 +30,13 @@
|
||||
#define GDK_TYPE_MIR_WINDOW (gdk_mir_window_get_type ())
|
||||
#define GDK_IS_MIR_WINDOW(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_MIR_WINDOW))
|
||||
|
||||
GDK_AVAILABLE_IN_3_10
|
||||
GDK_AVAILABLE_IN_3_16
|
||||
GType gdk_mir_display_get_type (void);
|
||||
|
||||
GDK_AVAILABLE_IN_3_10
|
||||
GDK_AVAILABLE_IN_3_16
|
||||
MirConnection *gdk_mir_display_get_mir_connection (GdkDisplay *display);
|
||||
|
||||
GDK_AVAILABLE_IN_3_10
|
||||
GDK_AVAILABLE_IN_3_16
|
||||
GType gdk_mir_window_get_type (void);
|
||||
|
||||
GDK_AVAILABLE_IN_3_16
|
||||
|
||||
@@ -213,7 +213,6 @@ ensure_surface_full (GdkWindow *window,
|
||||
MirBufferUsage buffer_usage)
|
||||
{
|
||||
GdkMirWindowImpl *impl = GDK_MIR_WINDOW_IMPL (window->impl);
|
||||
MirEventDelegate event_delegate = { event_cb, NULL };
|
||||
GdkMirWindowReference *window_ref;
|
||||
|
||||
if (impl->surface || should_render_in_parent (window))
|
||||
@@ -224,8 +223,6 @@ ensure_surface_full (GdkWindow *window,
|
||||
*/
|
||||
window_ref = _gdk_mir_event_source_get_window_reference (window);
|
||||
|
||||
event_delegate.context = window_ref;
|
||||
|
||||
impl->surface = create_mir_surface (gdk_window_get_display (window),
|
||||
window->width, window->height,
|
||||
buffer_usage);
|
||||
@@ -240,7 +237,7 @@ ensure_surface_full (GdkWindow *window,
|
||||
|
||||
_gdk_mir_event_source_queue (window_ref, &resize_event);
|
||||
|
||||
mir_surface_set_event_handler (impl->surface, &event_delegate); // FIXME: Ignore some events until shown
|
||||
mir_surface_set_event_handler (impl->surface, event_cb, window_ref); // FIXME: Ignore some events until shown
|
||||
set_surface_type (impl, impl->surface_type);
|
||||
set_surface_state (impl, impl->surface_state);
|
||||
}
|
||||
|
||||
@@ -193,11 +193,13 @@ gdk_registry_handle_global (void *data,
|
||||
output =
|
||||
wl_registry_bind (display_wayland->wl_registry, id, &wl_output_interface, MIN (version, 2));
|
||||
_gdk_wayland_screen_add_output (display_wayland->screen, id, output, MIN (version, 2));
|
||||
wl_display_roundtrip (display_wayland->wl_display);
|
||||
}
|
||||
else if (strcmp (interface, "wl_seat") == 0)
|
||||
{
|
||||
seat = wl_registry_bind (display_wayland->wl_registry, id, &wl_seat_interface, MIN (version, 4));
|
||||
_gdk_wayland_device_manager_add_seat (gdk_display->device_manager, id, seat);
|
||||
wl_display_roundtrip (display_wayland->wl_display);
|
||||
}
|
||||
else if (strcmp (interface, "wl_data_device_manager") == 0)
|
||||
{
|
||||
@@ -605,7 +607,7 @@ gdk_wayland_display_set_cursor_theme (GdkDisplay *display,
|
||||
}
|
||||
wayland_display->scaled_cursor_themes[0] = theme;
|
||||
if (wayland_display->cursor_theme_name != NULL)
|
||||
free (wayland_display->cursor_theme_name);
|
||||
g_free (wayland_display->cursor_theme_name);
|
||||
wayland_display->cursor_theme_name = g_strdup (name);
|
||||
wayland_display->cursor_theme_size = size;
|
||||
|
||||
|
||||
@@ -1036,6 +1036,10 @@ output_handle_geometry (void *data,
|
||||
{
|
||||
GdkWaylandMonitor *monitor = (GdkWaylandMonitor *)data;
|
||||
|
||||
GDK_NOTE (MISC,
|
||||
g_message ("handle geometry output %d, position %d %d, phys. size %d %d, manufacturer %s, model %s",
|
||||
monitor->id, x, y, physical_width, physical_height, make, model));
|
||||
|
||||
monitor->geometry.x = x;
|
||||
monitor->geometry.y = y;
|
||||
|
||||
@@ -1058,6 +1062,9 @@ output_handle_done (void *data,
|
||||
{
|
||||
GdkWaylandMonitor *monitor = (GdkWaylandMonitor *)data;
|
||||
|
||||
GDK_NOTE (MISC,
|
||||
g_message ("handle done output %d", monitor->id));
|
||||
|
||||
g_signal_emit_by_name (monitor->screen, "monitors-changed");
|
||||
update_screen_size (monitor->screen);
|
||||
}
|
||||
@@ -1065,12 +1072,17 @@ output_handle_done (void *data,
|
||||
static void
|
||||
output_handle_scale (void *data,
|
||||
struct wl_output *wl_output,
|
||||
int32_t factor)
|
||||
int32_t scale)
|
||||
{
|
||||
GdkWaylandMonitor *monitor = (GdkWaylandMonitor *)data;
|
||||
|
||||
monitor->scale = factor;
|
||||
g_signal_emit_by_name (monitor->screen, "monitors-changed");
|
||||
GDK_NOTE (MISC,
|
||||
g_message ("handle scale output %d, scale %d", monitor->id, scale));
|
||||
|
||||
monitor->scale = scale;
|
||||
|
||||
if (monitor->geometry.width != 0 && monitor->version < OUTPUT_VERSION_WITH_DONE)
|
||||
g_signal_emit_by_name (monitor->screen, "monitors-changed");
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1083,6 +1095,10 @@ output_handle_mode (void *data,
|
||||
{
|
||||
GdkWaylandMonitor *monitor = (GdkWaylandMonitor *)data;
|
||||
|
||||
GDK_NOTE (MISC,
|
||||
g_message ("handle mode output %d, size %d %d, rate %d",
|
||||
monitor->id, width, height, refresh));
|
||||
|
||||
if ((flags & WL_OUTPUT_MODE_CURRENT) == 0)
|
||||
return;
|
||||
|
||||
|
||||
@@ -115,6 +115,17 @@ struct _GdkWindowImplWayland
|
||||
|
||||
gchar *title;
|
||||
|
||||
struct {
|
||||
gboolean was_set;
|
||||
|
||||
gchar *application_id;
|
||||
gchar *app_menu_path;
|
||||
gchar *menubar_path;
|
||||
gchar *window_object_path;
|
||||
gchar *application_object_path;
|
||||
gchar *unique_bus_name;
|
||||
} application;
|
||||
|
||||
GdkGeometry geometry_hints;
|
||||
GdkWindowHints geometry_mask;
|
||||
|
||||
@@ -144,6 +155,9 @@ static void gdk_wayland_window_configure (GdkWindow *window,
|
||||
int height,
|
||||
int scale);
|
||||
|
||||
static void maybe_set_gtk_surface_dbus_properties (GdkWaylandDisplay *display_wayland,
|
||||
GdkWindowImplWayland *impl);
|
||||
|
||||
GType _gdk_window_impl_wayland_get_type (void);
|
||||
|
||||
G_DEFINE_TYPE (GdkWindowImplWayland, _gdk_window_impl_wayland, GDK_TYPE_WINDOW_IMPL)
|
||||
@@ -645,6 +659,13 @@ gdk_window_impl_wayland_finalize (GObject *object)
|
||||
|
||||
g_free (impl->title);
|
||||
|
||||
g_free (impl->application.application_id);
|
||||
g_free (impl->application.app_menu_path);
|
||||
g_free (impl->application.menubar_path);
|
||||
g_free (impl->application.window_object_path);
|
||||
g_free (impl->application.application_object_path);
|
||||
g_free (impl->application.unique_bus_name);
|
||||
|
||||
g_clear_pointer (&impl->opaque_region, cairo_region_destroy);
|
||||
g_clear_pointer (&impl->input_region, cairo_region_destroy);
|
||||
|
||||
@@ -964,6 +985,7 @@ gdk_wayland_window_create_xdg_surface (GdkWindow *window)
|
||||
{
|
||||
GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (gdk_window_get_display (window));
|
||||
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
const gchar *app_id;
|
||||
|
||||
impl->xdg_surface = xdg_shell_get_xdg_surface (display_wayland->xdg_shell, impl->surface);
|
||||
xdg_surface_add_listener (impl->xdg_surface, &xdg_surface_listener, window);
|
||||
@@ -977,7 +999,15 @@ gdk_wayland_window_create_xdg_surface (GdkWindow *window)
|
||||
if (window->state & GDK_WINDOW_STATE_FULLSCREEN)
|
||||
xdg_surface_set_fullscreen (impl->xdg_surface, NULL);
|
||||
|
||||
xdg_surface_set_app_id (impl->xdg_surface, gdk_get_program_class ());
|
||||
app_id = impl->application.application_id;
|
||||
if (app_id == NULL)
|
||||
app_id = g_get_prgname ();
|
||||
if (app_id == NULL)
|
||||
app_id = gdk_get_program_class ();
|
||||
|
||||
xdg_surface_set_app_id (impl->xdg_surface, app_id);
|
||||
|
||||
maybe_set_gtk_surface_dbus_properties (display_wayland, impl);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -2408,6 +2438,43 @@ gdk_wayland_window_set_use_custom_surface (GdkWindow *window)
|
||||
impl->use_custom_surface = TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
maybe_set_gtk_surface_dbus_properties (GdkWaylandDisplay *display_wayland,
|
||||
GdkWindowImplWayland *impl)
|
||||
{
|
||||
if (impl->application.was_set)
|
||||
return;
|
||||
|
||||
if (impl->application.application_id == NULL &&
|
||||
impl->application.app_menu_path == NULL &&
|
||||
impl->application.menubar_path == NULL &&
|
||||
impl->application.window_object_path == NULL &&
|
||||
impl->application.application_object_path == NULL &&
|
||||
impl->application.unique_bus_name == NULL)
|
||||
return;
|
||||
|
||||
if (impl->gtk_surface == NULL)
|
||||
{
|
||||
if (impl->xdg_surface == NULL)
|
||||
return;
|
||||
|
||||
if (display_wayland->gtk_shell == NULL)
|
||||
return;
|
||||
|
||||
impl->gtk_surface = gtk_shell_get_gtk_surface (display_wayland->gtk_shell,
|
||||
impl->surface);
|
||||
}
|
||||
|
||||
gtk_surface_set_dbus_properties (impl->gtk_surface,
|
||||
impl->application.application_id,
|
||||
impl->application.app_menu_path,
|
||||
impl->application.menubar_path,
|
||||
impl->application.window_object_path,
|
||||
impl->application.application_object_path,
|
||||
impl->application.unique_bus_name);
|
||||
impl->application.was_set = TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
gdk_wayland_window_set_dbus_properties_libgtk_only (GdkWindow *window,
|
||||
const char *application_id,
|
||||
@@ -2417,29 +2484,21 @@ gdk_wayland_window_set_dbus_properties_libgtk_only (GdkWindow *window,
|
||||
const char *application_object_path,
|
||||
const char *unique_bus_name)
|
||||
{
|
||||
GdkWaylandDisplay *display = GDK_WAYLAND_DISPLAY (gdk_window_get_display (window));
|
||||
GdkWaylandDisplay *display_wayland =
|
||||
GDK_WAYLAND_DISPLAY (gdk_window_get_display (window));
|
||||
GdkWindowImplWayland *impl;
|
||||
|
||||
g_return_if_fail (GDK_IS_WAYLAND_WINDOW (window));
|
||||
|
||||
impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
|
||||
if (impl->gtk_surface == NULL)
|
||||
{
|
||||
if (impl->xdg_surface == NULL)
|
||||
return;
|
||||
impl->application.application_id = g_strdup (application_id);
|
||||
impl->application.app_menu_path = g_strdup (app_menu_path);
|
||||
impl->application.menubar_path = g_strdup (menubar_path);
|
||||
impl->application.window_object_path = g_strdup (window_object_path);
|
||||
impl->application.application_object_path =
|
||||
g_strdup (application_object_path);
|
||||
impl->application.unique_bus_name = g_strdup (unique_bus_name);
|
||||
|
||||
if (display->gtk_shell == NULL)
|
||||
return;
|
||||
|
||||
impl->gtk_surface = gtk_shell_get_gtk_surface (display->gtk_shell, impl->surface);
|
||||
}
|
||||
|
||||
gtk_surface_set_dbus_properties (impl->gtk_surface,
|
||||
application_id,
|
||||
app_menu_path,
|
||||
menubar_path,
|
||||
window_object_path,
|
||||
application_object_path,
|
||||
unique_bus_name);
|
||||
maybe_set_gtk_surface_dbus_properties (display_wayland, impl);
|
||||
}
|
||||
|
||||
@@ -1837,6 +1837,7 @@ gdk_event_translate (MSG *msg,
|
||||
RECT rect, *drag, orig_drag;
|
||||
POINT point;
|
||||
MINMAXINFO *mmi;
|
||||
LONG style;
|
||||
HWND hwnd;
|
||||
HCURSOR hcursor;
|
||||
BYTE key_state[256];
|
||||
@@ -3044,6 +3045,8 @@ gdk_event_translate (MSG *msg,
|
||||
mmi->ptMaxPosition.x, mmi->ptMaxPosition.y,
|
||||
mmi->ptMaxSize.x, mmi->ptMaxSize.y));
|
||||
|
||||
style = GetWindowLong (GDK_WINDOW_HWND (window), GWL_STYLE);
|
||||
|
||||
if (impl->hint_flags & GDK_HINT_MIN_SIZE)
|
||||
{
|
||||
rect.left = rect.top = 0;
|
||||
@@ -3072,7 +3075,10 @@ gdk_event_translate (MSG *msg,
|
||||
mmi->ptMaxTrackSize.x = maxw > 0 && maxw < G_MAXSHORT ? maxw : G_MAXSHORT;
|
||||
mmi->ptMaxTrackSize.y = maxh > 0 && maxh < G_MAXSHORT ? maxh : G_MAXSHORT;
|
||||
}
|
||||
else
|
||||
/* Assume that these styles are incompatible with CSD,
|
||||
* so there's no reason for us to override the defaults.
|
||||
*/
|
||||
else if ((style & (WS_BORDER | WS_THICKFRAME)) == 0)
|
||||
{
|
||||
HMONITOR winmon;
|
||||
MONITORINFO moninfo;
|
||||
@@ -3085,6 +3091,8 @@ gdk_event_translate (MSG *msg,
|
||||
{
|
||||
mmi->ptMaxTrackSize.x = moninfo.rcWork.right - moninfo.rcWork.left;
|
||||
mmi->ptMaxTrackSize.y = moninfo.rcWork.bottom - moninfo.rcWork.top;
|
||||
mmi->ptMaxPosition.x = moninfo.rcWork.left;
|
||||
mmi->ptMaxPosition.y = moninfo.rcWork.top;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
+28
-10
@@ -309,9 +309,9 @@ glx_pixmap_get (cairo_surface_t *surface, guint texture_target)
|
||||
{
|
||||
Display *display = cairo_xlib_surface_get_display (surface);
|
||||
Screen *screen = cairo_xlib_surface_get_screen (surface);
|
||||
Visual *visual = cairo_xlib_surface_get_visual (surface);;
|
||||
Visual *visual = cairo_xlib_surface_get_visual (surface);
|
||||
GdkGLXPixmap *glx_pixmap;
|
||||
GLXFBConfig *fbconfigs;
|
||||
GLXFBConfig *fbconfigs, config;
|
||||
int nfbconfigs;
|
||||
XVisualInfo *visinfo;
|
||||
VisualID visualid;
|
||||
@@ -393,6 +393,7 @@ glx_pixmap_get (cairo_surface_t *surface, guint texture_target)
|
||||
if (value == TRUE)
|
||||
y_inverted = TRUE;
|
||||
|
||||
config = fbconfigs[i];
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -407,7 +408,7 @@ glx_pixmap_get (cairo_surface_t *surface, guint texture_target)
|
||||
glx_pixmap = g_slice_new0 (GdkGLXPixmap);
|
||||
glx_pixmap->y_inverted = y_inverted;
|
||||
glx_pixmap->display = display;
|
||||
glx_pixmap->drawable = glXCreatePixmap (display, fbconfigs[i],
|
||||
glx_pixmap->drawable = glXCreatePixmap (display, config,
|
||||
cairo_xlib_surface_get_drawable (surface),
|
||||
pixmap_attributes);
|
||||
|
||||
@@ -432,6 +433,11 @@ gdk_x11_gl_context_texture_from_surface (GdkGLContext *paint_context,
|
||||
double sx, sy;
|
||||
float uscale, vscale;
|
||||
GdkTexturedQuad *quads;
|
||||
GdkX11Display *display_x11;
|
||||
|
||||
display_x11 = GDK_X11_DISPLAY (gdk_gl_context_get_display (paint_context));
|
||||
if (!display_x11->has_glx_texture_from_pixmap)
|
||||
return FALSE;
|
||||
|
||||
if (cairo_surface_get_type (surface) != CAIRO_SURFACE_TYPE_XLIB)
|
||||
return FALSE;
|
||||
@@ -461,7 +467,6 @@ gdk_x11_gl_context_texture_from_surface (GdkGLContext *paint_context,
|
||||
|
||||
glGenTextures (1, &texture_id);
|
||||
glBindTexture (target, texture_id);
|
||||
glEnable (target);
|
||||
|
||||
glTexParameteri (target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||
glTexParameteri (target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||
@@ -526,7 +531,6 @@ gdk_x11_gl_context_texture_from_surface (GdkGLContext *paint_context,
|
||||
glXReleaseTexImageEXT (glx_pixmap->display, glx_pixmap->drawable,
|
||||
GLX_FRONT_LEFT_EXT);
|
||||
|
||||
glDisable (target);
|
||||
glDeleteTextures (1, &texture_id);
|
||||
|
||||
glx_pixmap_destroy(glx_pixmap);
|
||||
@@ -558,17 +562,25 @@ create_gl3_context (GdkDisplay *display,
|
||||
GLX_CONTEXT_FLAGS_ARB, flags,
|
||||
None,
|
||||
};
|
||||
GLXContext res;
|
||||
|
||||
GdkX11GLContext *share_x11 = NULL;
|
||||
|
||||
if (share != NULL)
|
||||
share_x11 = GDK_X11_GL_CONTEXT (share);
|
||||
|
||||
return glXCreateContextAttribsARB (gdk_x11_display_get_xdisplay (display),
|
||||
config,
|
||||
share_x11 != NULL ? share_x11->glx_context : NULL,
|
||||
True,
|
||||
attrib_list);
|
||||
gdk_x11_display_error_trap_push (display);
|
||||
|
||||
res = glXCreateContextAttribsARB (gdk_x11_display_get_xdisplay (display),
|
||||
config,
|
||||
share_x11 != NULL ? share_x11->glx_context : NULL,
|
||||
True,
|
||||
attrib_list);
|
||||
|
||||
if (gdk_x11_display_error_trap_pop (display))
|
||||
return NULL;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -1206,6 +1218,12 @@ gdk_x11_display_make_gl_context_current (GdkDisplay *display,
|
||||
}
|
||||
|
||||
context_x11 = GDK_X11_GL_CONTEXT (context);
|
||||
if (context_x11->glx_context == NULL)
|
||||
{
|
||||
g_critical ("No GLX context associated to the GdkGLContext; you must "
|
||||
"call gdk_gl_context_realize() first.");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
GDK_NOTE (OPENGL,
|
||||
g_print ("Making GLX context current to drawable %lu\n",
|
||||
|
||||
@@ -138,7 +138,7 @@ gtk_boolean_cell_accessible_update_cache (GtkCellAccessible *cell)
|
||||
{
|
||||
boolean_cell->priv->cell_sensitive = !boolean_cell->priv->cell_sensitive;
|
||||
|
||||
atk_object_notify_state_change (ATK_OBJECT (cell), ATK_STATE_CHECKED, sensitive);
|
||||
atk_object_notify_state_change (ATK_OBJECT (cell), ATK_STATE_SENSITIVE, sensitive);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -136,8 +136,7 @@ gtk_text_cell_accessible_update_cache (GtkCellAccessible *cell)
|
||||
{
|
||||
GtkTextCellAccessible *text_cell = GTK_TEXT_CELL_ACCESSIBLE (cell);
|
||||
AtkObject *obj = ATK_OBJECT (cell);
|
||||
gboolean rv = FALSE;
|
||||
gint temp_length;
|
||||
gint text_length;
|
||||
gchar *text;
|
||||
GtkCellRenderer *renderer;
|
||||
|
||||
@@ -149,48 +148,33 @@ gtk_text_cell_accessible_update_cache (GtkCellAccessible *cell)
|
||||
g_object_get (renderer, "text", &text, NULL);
|
||||
g_object_unref (renderer);
|
||||
|
||||
if (text_cell->priv->cell_text)
|
||||
{
|
||||
if (text == NULL || g_strcmp0 (text_cell->priv->cell_text, text) != 0)
|
||||
{
|
||||
g_free (text_cell->priv->cell_text);
|
||||
temp_length = text_cell->priv->cell_length;
|
||||
text_cell->priv->cell_text = NULL;
|
||||
text_cell->priv->cell_length = 0;
|
||||
g_signal_emit_by_name (cell, "text-changed::delete", 0, temp_length);
|
||||
if (obj->name == NULL)
|
||||
g_object_notify (G_OBJECT (obj), "accessible-name");
|
||||
if (text)
|
||||
rv = TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
rv = TRUE;
|
||||
if (text == NULL)
|
||||
text = g_strdup ("");
|
||||
text_length = g_utf8_strlen (text, -1);
|
||||
|
||||
if (rv)
|
||||
if (g_strcmp0 (text_cell->priv->cell_text, text) != 0)
|
||||
{
|
||||
if (text == NULL)
|
||||
if (text_cell->priv->cell_length)
|
||||
{
|
||||
text_cell->priv->cell_text = g_strdup ("");
|
||||
text_cell->priv->cell_length = 0;
|
||||
g_signal_emit_by_name (cell, "text-changed::delete",
|
||||
0, text_cell->priv->cell_length);
|
||||
}
|
||||
else
|
||||
|
||||
g_free (text_cell->priv->cell_text);
|
||||
text_cell->priv->cell_text = g_strdup (text);
|
||||
text_cell->priv->cell_length = text_length;
|
||||
|
||||
if (text_length)
|
||||
{
|
||||
text_cell->priv->cell_text = g_strdup (text);
|
||||
text_cell->priv->cell_length = g_utf8_strlen (text, -1);
|
||||
g_signal_emit_by_name (cell, "text-changed::insert",
|
||||
0, text_cell->priv->cell_length);
|
||||
}
|
||||
}
|
||||
|
||||
g_free (text);
|
||||
|
||||
if (rv)
|
||||
{
|
||||
g_signal_emit_by_name (cell, "text-changed::insert",
|
||||
0, text_cell->priv->cell_length);
|
||||
|
||||
if (obj->name == NULL)
|
||||
g_object_notify (G_OBJECT (obj), "accessible-name");
|
||||
}
|
||||
|
||||
g_free (text);
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -509,6 +509,11 @@ gtk_text_view_accessible_get_character_extents (AtkText *text,
|
||||
GdkWindow *window;
|
||||
gint x_widget, y_widget, x_window, y_window;
|
||||
|
||||
*x = 0;
|
||||
*y = 0;
|
||||
*width = 0;
|
||||
*height = 0;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
|
||||
if (widget == NULL)
|
||||
return;
|
||||
@@ -519,6 +524,9 @@ gtk_text_view_accessible_get_character_extents (AtkText *text,
|
||||
gtk_text_view_get_iter_location (view, &iter, &rectangle);
|
||||
|
||||
window = gtk_text_view_get_window (view, GTK_TEXT_WINDOW_WIDGET);
|
||||
if (window == NULL)
|
||||
return;
|
||||
|
||||
gdk_window_get_origin (window, &x_widget, &y_widget);
|
||||
|
||||
*height = rectangle.height;
|
||||
|
||||
@@ -1111,7 +1111,7 @@ gtk_font_selection_size_activate (GtkWidget *w,
|
||||
const gchar *text;
|
||||
|
||||
text = gtk_entry_get_text (GTK_ENTRY (priv->size_entry));
|
||||
new_size = MAX (0.1, atof (text) * PANGO_SCALE + 0.5);
|
||||
new_size = (int) MAX (0.1, atof (text) * PANGO_SCALE + 0.5);
|
||||
|
||||
if (priv->size != new_size)
|
||||
gtk_font_selection_set_size (fontsel, new_size);
|
||||
@@ -1130,7 +1130,7 @@ gtk_font_selection_size_focus_out (GtkWidget *w,
|
||||
const gchar *text;
|
||||
|
||||
text = gtk_entry_get_text (GTK_ENTRY (priv->size_entry));
|
||||
new_size = MAX (0.1, atof (text) * PANGO_SCALE + 0.5);
|
||||
new_size = (int) MAX (0.1, atof (text) * PANGO_SCALE + 0.5);
|
||||
|
||||
gtk_font_selection_set_size (fontsel, new_size);
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ struct _GtkHandleBoxPrivate
|
||||
{
|
||||
/* Properties */
|
||||
GtkPositionType handle_position;
|
||||
GtkPositionType snap_edge;
|
||||
gint snap_edge;
|
||||
GtkShadowType shadow_type;
|
||||
gboolean child_detached;
|
||||
/* Properties */
|
||||
@@ -1051,7 +1051,7 @@ gtk_handle_box_get_snap_edge (GtkHandleBox *handle_box)
|
||||
{
|
||||
g_return_val_if_fail (GTK_IS_HANDLE_BOX (handle_box), (GtkPositionType)-1);
|
||||
|
||||
return handle_box->priv->snap_edge;
|
||||
return (GtkPositionType)handle_box->priv->snap_edge;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2945,17 +2945,17 @@ gtk_icon_factory_buildable_custom_tag_end (GtkBuildable *buildable,
|
||||
}
|
||||
if (source_data->icon_name)
|
||||
gtk_icon_source_set_icon_name (icon_source, source_data->icon_name);
|
||||
if (source_data->size != -1)
|
||||
if ((gint)source_data->size != -1)
|
||||
{
|
||||
gtk_icon_source_set_size (icon_source, source_data->size);
|
||||
gtk_icon_source_set_size_wildcarded (icon_source, FALSE);
|
||||
}
|
||||
if (source_data->direction != -1)
|
||||
if ((gint)source_data->direction != -1)
|
||||
{
|
||||
gtk_icon_source_set_direction (icon_source, source_data->direction);
|
||||
gtk_icon_source_set_direction_wildcarded (icon_source, FALSE);
|
||||
}
|
||||
if (source_data->state != -1)
|
||||
if ((gint)source_data->state != -1)
|
||||
{
|
||||
gtk_icon_source_set_state (icon_source, source_data->state);
|
||||
gtk_icon_source_set_state_wildcarded (icon_source, FALSE);
|
||||
|
||||
@@ -95,7 +95,7 @@ real_add (const GtkStockItem *items,
|
||||
gpointer old_key, old_value;
|
||||
const GtkStockItem *item = &items[i];
|
||||
|
||||
if (replace_primary && item->modifier == PRIMARY_MODIFIER)
|
||||
if (replace_primary && (guint)item->modifier == PRIMARY_MODIFIER)
|
||||
{
|
||||
item = gtk_stock_item_copy (item);
|
||||
((GtkStockItem *)item)->modifier = (NON_STATIC_MASK |
|
||||
|
||||
@@ -35,9 +35,11 @@ typedef struct
|
||||
G_DEFINE_TYPE (GtkApplicationImplWayland, gtk_application_impl_wayland, GTK_TYPE_APPLICATION_IMPL_DBUS)
|
||||
|
||||
static void
|
||||
gtk_application_impl_wayland_handle_window_map (GtkApplicationImpl *impl,
|
||||
GtkWindow *window)
|
||||
gtk_application_impl_wayland_handle_window_realize (GtkApplicationImpl *impl,
|
||||
GtkWindow *window)
|
||||
{
|
||||
GtkApplicationImplClass *impl_class =
|
||||
GTK_APPLICATION_IMPL_CLASS (gtk_application_impl_wayland_parent_class);
|
||||
GtkApplicationImplDBus *dbus = (GtkApplicationImplDBus *) impl;
|
||||
GdkWindow *gdk_window;
|
||||
gchar *window_path;
|
||||
@@ -54,6 +56,8 @@ gtk_application_impl_wayland_handle_window_map (GtkApplicationImpl *impl,
|
||||
window_path, dbus->object_path, dbus->unique_name);
|
||||
|
||||
g_free (window_path);
|
||||
|
||||
impl_class->handle_window_realize (impl, window);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -66,5 +70,6 @@ gtk_application_impl_wayland_class_init (GtkApplicationImplWaylandClass *class)
|
||||
{
|
||||
GtkApplicationImplClass *impl_class = GTK_APPLICATION_IMPL_CLASS (class);
|
||||
|
||||
impl_class->handle_window_map = gtk_application_impl_wayland_handle_window_map;
|
||||
impl_class->handle_window_realize =
|
||||
gtk_application_impl_wayland_handle_window_realize;
|
||||
}
|
||||
|
||||
@@ -506,7 +506,9 @@ gtk_application_focus_in_event_cb (GtkWindow *window,
|
||||
priv->windows = g_list_concat (link, priv->windows);
|
||||
}
|
||||
|
||||
gtk_application_impl_active_window_changed (application->priv->impl, window);
|
||||
if (application->priv->impl)
|
||||
gtk_application_impl_active_window_changed (application->priv->impl, window);
|
||||
|
||||
g_object_notify (G_OBJECT (application), "active-window");
|
||||
|
||||
return FALSE;
|
||||
|
||||
+1
-1
@@ -1132,7 +1132,7 @@ gtk_button_box_size_allocate (GtkWidget *widget,
|
||||
|
||||
/**
|
||||
* gtk_button_box_new:
|
||||
* @orientation: the box' orientation.
|
||||
* @orientation: the box's orientation.
|
||||
*
|
||||
* Creates a new #GtkButtonBox.
|
||||
*
|
||||
|
||||
+84
-43
@@ -25,6 +25,32 @@
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
|
||||
/*
|
||||
* Gets the size for a single box blur.
|
||||
*
|
||||
* Much of this, the 3 * sqrt(2 * pi) / 4, is the known value for
|
||||
* approximating a Gaussian using box blurs. This yields quite a good
|
||||
* approximation for a Gaussian. For more details, see:
|
||||
* http://www.w3.org/TR/SVG11/filters.html#feGaussianBlurElement
|
||||
* https://bugzilla.mozilla.org/show_bug.cgi?id=590039#c19
|
||||
*/
|
||||
#define GAUSSIAN_SCALE_FACTOR ((3.0 * sqrt(2 * G_PI) / 4))
|
||||
|
||||
#define get_box_filter_size(radius) ((int)(GAUSSIAN_SCALE_FACTOR * (radius)))
|
||||
|
||||
/* Sadly, clang is picky about get_box_filter_size(2) not being a
|
||||
* constant expression, thus we have to use precomputed values.
|
||||
*/
|
||||
#define BOX_FILTER_SIZE_2 3
|
||||
#define BOX_FILTER_SIZE_3 5
|
||||
#define BOX_FILTER_SIZE_4 7
|
||||
#define BOX_FILTER_SIZE_5 9
|
||||
#define BOX_FILTER_SIZE_6 11
|
||||
#define BOX_FILTER_SIZE_7 13
|
||||
#define BOX_FILTER_SIZE_8 15
|
||||
#define BOX_FILTER_SIZE_9 16
|
||||
#define BOX_FILTER_SIZE_10 18
|
||||
|
||||
/* This applies a single box blur pass to a horizontal range of pixels;
|
||||
* since the box blur has the same weight for all pixels, we can
|
||||
* implement an efficient sliding window algorithm where we add
|
||||
@@ -60,18 +86,37 @@ blur_xspan (guchar *row,
|
||||
* only divide down after all three passes. (SSE parallel implementation
|
||||
* of the divide step is possible.)
|
||||
*/
|
||||
for (i = -d + offset; i < row_width + offset; i++)
|
||||
|
||||
#define BLUR_ROW_KERNEL(D) \
|
||||
for (i = -(D) + offset; i < row_width + offset; i++) \
|
||||
{ \
|
||||
if (i >= 0 && i < row_width) \
|
||||
sum += row[i]; \
|
||||
\
|
||||
if (i >= offset) \
|
||||
{ \
|
||||
if (i >= (D)) \
|
||||
sum -= row[i - (D)]; \
|
||||
\
|
||||
tmp_buffer[i - offset] = (sum + (D) / 2) / (D); \
|
||||
} \
|
||||
} \
|
||||
break;
|
||||
|
||||
/* We unroll the values for d for radius 2-10 to avoid a generic
|
||||
* divide operation (not radius 1, because its a no-op) */
|
||||
switch (d)
|
||||
{
|
||||
if (i >= 0 && i < row_width)
|
||||
sum += row[i];
|
||||
|
||||
if (i >= offset)
|
||||
{
|
||||
if (i >= d)
|
||||
sum -= row[i - d];
|
||||
|
||||
tmp_buffer[i - offset] = (sum + d / 2) / d;
|
||||
}
|
||||
case BOX_FILTER_SIZE_2: BLUR_ROW_KERNEL (BOX_FILTER_SIZE_2);
|
||||
case BOX_FILTER_SIZE_3: BLUR_ROW_KERNEL (BOX_FILTER_SIZE_3);
|
||||
case BOX_FILTER_SIZE_4: BLUR_ROW_KERNEL (BOX_FILTER_SIZE_4);
|
||||
case BOX_FILTER_SIZE_5: BLUR_ROW_KERNEL (BOX_FILTER_SIZE_5);
|
||||
case BOX_FILTER_SIZE_6: BLUR_ROW_KERNEL (BOX_FILTER_SIZE_6);
|
||||
case BOX_FILTER_SIZE_7: BLUR_ROW_KERNEL (BOX_FILTER_SIZE_7);
|
||||
case BOX_FILTER_SIZE_8: BLUR_ROW_KERNEL (BOX_FILTER_SIZE_8);
|
||||
case BOX_FILTER_SIZE_9: BLUR_ROW_KERNEL (BOX_FILTER_SIZE_9);
|
||||
case BOX_FILTER_SIZE_10: BLUR_ROW_KERNEL (BOX_FILTER_SIZE_10);
|
||||
default: BLUR_ROW_KERNEL (d);
|
||||
}
|
||||
|
||||
memcpy (row, tmp_buffer, row_width);
|
||||
@@ -140,45 +185,35 @@ flip_buffer (guchar *dst_buffer,
|
||||
#undef BLOCK_SIZE
|
||||
}
|
||||
|
||||
/*
|
||||
* Gets the size for a single box blur.
|
||||
*
|
||||
* Much of this, the 3 * sqrt(2 * pi) / 4, is the known value for
|
||||
* approximating a Gaussian using box blurs. This yields quite a good
|
||||
* approximation for a Gaussian. For more details, see:
|
||||
* http://www.w3.org/TR/SVG11/filters.html#feGaussianBlurElement
|
||||
* https://bugzilla.mozilla.org/show_bug.cgi?id=590039#c19
|
||||
*/
|
||||
#define GAUSSIAN_SCALE_FACTOR ((3.0 * sqrt(2 * G_PI) / 4))
|
||||
|
||||
static int
|
||||
get_box_filter_size (double radius)
|
||||
{
|
||||
return GAUSSIAN_SCALE_FACTOR * radius;
|
||||
}
|
||||
|
||||
static void
|
||||
_boxblur (guchar *buffer,
|
||||
int width,
|
||||
int height,
|
||||
int radius)
|
||||
_boxblur (guchar *buffer,
|
||||
int width,
|
||||
int height,
|
||||
int radius,
|
||||
GtkBlurFlags flags)
|
||||
{
|
||||
guchar *flipped_buffer;
|
||||
int d = get_box_filter_size (radius);
|
||||
|
||||
flipped_buffer = g_malloc (width * height);
|
||||
|
||||
/* Step 1: swap rows and columns */
|
||||
flip_buffer (flipped_buffer, buffer, width, height);
|
||||
if (flags & GTK_BLUR_Y)
|
||||
{
|
||||
/* Step 1: swap rows and columns */
|
||||
flip_buffer (flipped_buffer, buffer, width, height);
|
||||
|
||||
/* Step 2: blur rows (really columns) */
|
||||
blur_rows (flipped_buffer, buffer, height, width, d);
|
||||
/* Step 2: blur rows (really columns) */
|
||||
blur_rows (flipped_buffer, buffer, height, width, d);
|
||||
|
||||
/* Step 3: swap rows and columns */
|
||||
flip_buffer (buffer, flipped_buffer, height, width);
|
||||
/* Step 3: swap rows and columns */
|
||||
flip_buffer (buffer, flipped_buffer, height, width);
|
||||
}
|
||||
|
||||
/* Step 4: blur rows */
|
||||
blur_rows (buffer, flipped_buffer, width, height, d);
|
||||
if (flags & GTK_BLUR_X)
|
||||
{
|
||||
/* Step 4: blur rows */
|
||||
blur_rows (buffer, flipped_buffer, width, height, d);
|
||||
}
|
||||
|
||||
g_free (flipped_buffer);
|
||||
}
|
||||
@@ -192,7 +227,8 @@ _boxblur (guchar *buffer,
|
||||
*/
|
||||
void
|
||||
_gtk_cairo_blur_surface (cairo_surface_t* surface,
|
||||
double radius_d)
|
||||
double radius_d,
|
||||
GtkBlurFlags flags)
|
||||
{
|
||||
int radius = radius_d;
|
||||
|
||||
@@ -200,7 +236,12 @@ _gtk_cairo_blur_surface (cairo_surface_t* surface,
|
||||
g_return_if_fail (cairo_surface_get_type (surface) == CAIRO_SURFACE_TYPE_IMAGE);
|
||||
g_return_if_fail (cairo_image_surface_get_format (surface) == CAIRO_FORMAT_A8);
|
||||
|
||||
if (radius == 0)
|
||||
/* The code doesn't actually do any blurring for radius 1, as it
|
||||
* ends up with box filter size 1 */
|
||||
if (radius <= 1)
|
||||
return;
|
||||
|
||||
if ((flags & (GTK_BLUR_X|GTK_BLUR_Y)) == 0)
|
||||
return;
|
||||
|
||||
/* Before we mess with the surface, execute any pending drawing. */
|
||||
@@ -209,7 +250,7 @@ _gtk_cairo_blur_surface (cairo_surface_t* surface,
|
||||
_boxblur (cairo_image_surface_get_data (surface),
|
||||
cairo_image_surface_get_stride (surface),
|
||||
cairo_image_surface_get_height (surface),
|
||||
radius);
|
||||
radius, flags);
|
||||
|
||||
/* Inform cairo we altered the surface contents. */
|
||||
cairo_surface_mark_dirty (surface);
|
||||
|
||||
@@ -29,8 +29,16 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef enum {
|
||||
GTK_BLUR_NONE = 0,
|
||||
GTK_BLUR_X = 1<<0,
|
||||
GTK_BLUR_Y = 1<<1,
|
||||
GTK_BLUR_REPEAT = 1<<2
|
||||
} GtkBlurFlags;
|
||||
|
||||
void _gtk_cairo_blur_surface (cairo_surface_t *surface,
|
||||
double radius);
|
||||
double radius,
|
||||
GtkBlurFlags flags);;
|
||||
int _gtk_cairo_blur_compute_pixels (double radius);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
@@ -333,7 +333,7 @@ static GtkCssValue font_variant_values[] = {
|
||||
GtkCssValue *
|
||||
_gtk_css_font_variant_value_new (PangoVariant font_variant)
|
||||
{
|
||||
g_return_val_if_fail (font_variant < G_N_ELEMENTS (font_variant_values), NULL);
|
||||
g_return_val_if_fail ((gint)font_variant < G_N_ELEMENTS (font_variant_values), NULL);
|
||||
|
||||
return _gtk_css_value_ref (&font_variant_values[font_variant]);
|
||||
}
|
||||
|
||||
+61
-20
@@ -297,7 +297,10 @@ static gboolean
|
||||
needs_blur (const GtkCssValue *shadow)
|
||||
{
|
||||
double radius = _gtk_css_number_value_get (shadow->radius, 0);
|
||||
if (radius == 0.0)
|
||||
|
||||
/* The code doesn't actually do any blurring for radius 1, as it
|
||||
* ends up with box filter size 1 */
|
||||
if (radius <= 1.0)
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
@@ -307,12 +310,15 @@ static const cairo_user_data_key_t original_cr_key;
|
||||
|
||||
static cairo_t *
|
||||
gtk_css_shadow_value_start_drawing (const GtkCssValue *shadow,
|
||||
cairo_t *cr)
|
||||
cairo_t *cr,
|
||||
GtkBlurFlags blur_flags)
|
||||
{
|
||||
cairo_rectangle_int_t clip_rect;
|
||||
cairo_surface_t *surface;
|
||||
cairo_t *blur_cr;
|
||||
gdouble radius, clip_radius;
|
||||
gboolean blur_x = (blur_flags & GTK_BLUR_X) != 0;
|
||||
gboolean blur_y = (blur_flags & GTK_BLUR_Y) != 0;
|
||||
|
||||
if (!needs_blur (shadow))
|
||||
return cr;
|
||||
@@ -322,12 +328,22 @@ gtk_css_shadow_value_start_drawing (const GtkCssValue *shadow,
|
||||
radius = _gtk_css_number_value_get (shadow->radius, 0);
|
||||
clip_radius = _gtk_cairo_blur_compute_pixels (radius);
|
||||
|
||||
if (blur_flags & GTK_BLUR_REPEAT)
|
||||
{
|
||||
if (!blur_x)
|
||||
clip_rect.width = 1;
|
||||
if (!blur_y)
|
||||
clip_rect.height = 1;
|
||||
}
|
||||
|
||||
/* Create a larger surface to center the blur. */
|
||||
surface = cairo_surface_create_similar_image (cairo_get_target (cr),
|
||||
CAIRO_FORMAT_A8,
|
||||
clip_rect.width + 2 * clip_radius,
|
||||
clip_rect.height + 2 * clip_radius);
|
||||
cairo_surface_set_device_offset (surface, clip_radius - clip_rect.x, clip_radius - clip_rect.y);
|
||||
clip_rect.width + (blur_x ? 2 * clip_radius : 0),
|
||||
clip_rect.height + (blur_y ? 2 * clip_radius : 0));
|
||||
cairo_surface_set_device_offset (surface,
|
||||
(blur_x ? clip_radius : 0) - clip_rect.x,
|
||||
(blur_y ? clip_radius : 0) - clip_rect.y);
|
||||
blur_cr = cairo_create (surface);
|
||||
cairo_set_user_data (blur_cr, &original_cr_key, cairo_reference (cr), (cairo_destroy_func_t) cairo_destroy);
|
||||
|
||||
@@ -342,9 +358,24 @@ gtk_css_shadow_value_start_drawing (const GtkCssValue *shadow,
|
||||
return blur_cr;
|
||||
}
|
||||
|
||||
void
|
||||
mask_surface_repeat (cairo_t *cr,
|
||||
cairo_surface_t *surface)
|
||||
{
|
||||
cairo_pattern_t *pattern;
|
||||
|
||||
pattern = cairo_pattern_create_for_surface (surface);
|
||||
cairo_pattern_set_extend (pattern, CAIRO_EXTEND_REPEAT);
|
||||
|
||||
cairo_mask (cr, pattern);
|
||||
|
||||
cairo_pattern_destroy (pattern);
|
||||
}
|
||||
|
||||
static cairo_t *
|
||||
gtk_css_shadow_value_finish_drawing (const GtkCssValue *shadow,
|
||||
cairo_t *cr)
|
||||
cairo_t *cr,
|
||||
GtkBlurFlags blur_flags)
|
||||
{
|
||||
gdouble radius;
|
||||
cairo_t *original_cr;
|
||||
@@ -358,12 +389,16 @@ gtk_css_shadow_value_finish_drawing (const GtkCssValue *shadow,
|
||||
/* Blur the surface. */
|
||||
surface = cairo_get_target (cr);
|
||||
radius = _gtk_css_number_value_get (shadow->radius, 0);
|
||||
_gtk_cairo_blur_surface (surface, radius);
|
||||
_gtk_cairo_blur_surface (surface, radius, blur_flags);
|
||||
|
||||
gdk_cairo_set_source_rgba (original_cr, _gtk_css_rgba_value_get_rgba (shadow->color));
|
||||
cairo_mask_surface (original_cr, surface, 0, 0);
|
||||
if (blur_flags & GTK_BLUR_REPEAT)
|
||||
mask_surface_repeat (original_cr, surface);
|
||||
else
|
||||
cairo_mask_surface (original_cr, surface, 0, 0);
|
||||
|
||||
cairo_destroy (cr);
|
||||
|
||||
cairo_surface_destroy (surface);
|
||||
|
||||
return original_cr;
|
||||
@@ -425,7 +460,7 @@ make_blurred_pango_surface (cairo_t *existing_cr,
|
||||
cr = cairo_create (surface);
|
||||
cairo_move_to (cr, 0, 0);
|
||||
_gtk_pango_fill_layout (cr, layout);
|
||||
_gtk_cairo_blur_surface (surface, radius * x_scale);
|
||||
_gtk_cairo_blur_surface (surface, radius * x_scale, GTK_BLUR_X | GTK_BLUR_Y);
|
||||
|
||||
cairo_destroy (cr);
|
||||
|
||||
@@ -512,14 +547,14 @@ _gtk_css_shadow_value_paint_icon (const GtkCssValue *shadow,
|
||||
pattern = cairo_pattern_reference (cairo_get_source (cr));
|
||||
|
||||
gdk_cairo_set_source_rgba (cr, _gtk_css_rgba_value_get_rgba (shadow->color));
|
||||
cr = gtk_css_shadow_value_start_drawing (shadow, cr);
|
||||
cr = gtk_css_shadow_value_start_drawing (shadow, cr, GTK_BLUR_X | GTK_BLUR_Y);
|
||||
|
||||
cairo_translate (cr,
|
||||
_gtk_css_number_value_get (shadow->hoffset, 0),
|
||||
_gtk_css_number_value_get (shadow->voffset, 0));
|
||||
cairo_mask (cr, pattern);
|
||||
|
||||
cr = gtk_css_shadow_value_finish_drawing (shadow, cr);
|
||||
cr = gtk_css_shadow_value_finish_drawing (shadow, cr, GTK_BLUR_X | GTK_BLUR_Y);
|
||||
|
||||
cairo_restore (cr);
|
||||
cairo_pattern_destroy (pattern);
|
||||
@@ -567,16 +602,18 @@ draw_shadow (const GtkCssValue *shadow,
|
||||
cairo_t *cr,
|
||||
GtkRoundedBox *box,
|
||||
GtkRoundedBox *clip_box,
|
||||
gboolean blur)
|
||||
GtkBlurFlags blur_flags)
|
||||
{
|
||||
cairo_t *shadow_cr;
|
||||
gboolean do_blur;
|
||||
|
||||
if (has_empty_clip (cr))
|
||||
return;
|
||||
|
||||
gdk_cairo_set_source_rgba (cr, _gtk_css_rgba_value_get_rgba (shadow->color));
|
||||
if (blur)
|
||||
shadow_cr = gtk_css_shadow_value_start_drawing (shadow, cr);
|
||||
do_blur = (blur_flags & (GTK_BLUR_X | GTK_BLUR_Y)) != 0;
|
||||
if (do_blur)
|
||||
shadow_cr = gtk_css_shadow_value_start_drawing (shadow, cr, blur_flags);
|
||||
else
|
||||
shadow_cr = cr;
|
||||
|
||||
@@ -587,8 +624,8 @@ draw_shadow (const GtkCssValue *shadow,
|
||||
|
||||
cairo_fill (shadow_cr);
|
||||
|
||||
if (blur)
|
||||
gtk_css_shadow_value_finish_drawing (shadow, shadow_cr);
|
||||
if (do_blur)
|
||||
gtk_css_shadow_value_finish_drawing (shadow, shadow_cr, blur_flags);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -644,7 +681,7 @@ _gtk_css_shadow_value_paint_box (const GtkCssValue *shadow,
|
||||
_gtk_rounded_box_shrink (&clip_box, -clip_radius, -clip_radius, -clip_radius, -clip_radius);
|
||||
|
||||
if (!needs_blur (shadow))
|
||||
draw_shadow (shadow, cr, &box, &clip_box, FALSE);
|
||||
draw_shadow (shadow, cr, &box, &clip_box, GTK_BLUR_NONE);
|
||||
else
|
||||
{
|
||||
int i, x1, x2, y1, y2;
|
||||
@@ -714,7 +751,7 @@ _gtk_css_shadow_value_paint_box (const GtkCssValue *shadow,
|
||||
/* Also clip with remaining to ensure we never draw any area twice */
|
||||
gdk_cairo_region (cr, remaining);
|
||||
cairo_clip (cr);
|
||||
draw_shadow (shadow, cr, &box, &clip_box, TRUE);
|
||||
draw_shadow (shadow, cr, &box, &clip_box, GTK_BLUR_X | GTK_BLUR_Y);
|
||||
cairo_restore (cr);
|
||||
|
||||
/* We drew the region, remove it from remaining */
|
||||
@@ -728,8 +765,11 @@ _gtk_css_shadow_value_paint_box (const GtkCssValue *shadow,
|
||||
/* Then the sides */
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
GtkBlurFlags blur_flags = GTK_BLUR_REPEAT;
|
||||
|
||||
if (i == GTK_CSS_TOP || i == GTK_CSS_BOTTOM)
|
||||
{
|
||||
blur_flags |= GTK_BLUR_Y;
|
||||
x1 = floor (box.box.x - clip_radius);
|
||||
x2 = ceil (box.box.x + box.box.width + clip_radius);
|
||||
}
|
||||
@@ -746,6 +786,7 @@ _gtk_css_shadow_value_paint_box (const GtkCssValue *shadow,
|
||||
|
||||
if (i == GTK_CSS_LEFT || i == GTK_CSS_RIGHT)
|
||||
{
|
||||
blur_flags |= GTK_BLUR_X;
|
||||
y1 = floor (box.box.y - clip_radius);
|
||||
y2 = ceil (box.box.y + box.box.height + clip_radius);
|
||||
}
|
||||
@@ -766,7 +807,7 @@ _gtk_css_shadow_value_paint_box (const GtkCssValue *shadow,
|
||||
/* Also clip with remaining to ensure we never draw any area twice */
|
||||
gdk_cairo_region (cr, remaining);
|
||||
cairo_clip (cr);
|
||||
draw_shadow (shadow, cr, &box, &clip_box, TRUE);
|
||||
draw_shadow (shadow, cr, &box, &clip_box, blur_flags);
|
||||
cairo_restore (cr);
|
||||
|
||||
/* We drew the region, remove it from remaining */
|
||||
@@ -782,7 +823,7 @@ _gtk_css_shadow_value_paint_box (const GtkCssValue *shadow,
|
||||
cairo_save (cr);
|
||||
gdk_cairo_region (cr, remaining);
|
||||
cairo_clip (cr);
|
||||
draw_shadow (shadow, cr, &box, &clip_box, FALSE);
|
||||
draw_shadow (shadow, cr, &box, &clip_box, GTK_BLUR_NONE);
|
||||
cairo_restore (cr);
|
||||
|
||||
cairo_region_destroy (remaining);
|
||||
|
||||
@@ -54,6 +54,9 @@ gtk_css_widget_node_style_changed (GtkCssNode *cssnode,
|
||||
|
||||
node = GTK_CSS_WIDGET_NODE (cssnode);
|
||||
|
||||
if (node->widget)
|
||||
gtk_widget_clear_path (node->widget);
|
||||
|
||||
GTK_CSS_NODE_CLASS (gtk_css_widget_node_parent_class)->style_changed (cssnode, old_style, new_style);
|
||||
|
||||
diff = gtk_css_style_get_difference (new_style, old_style);
|
||||
|
||||
+32
-11
@@ -228,6 +228,8 @@ static gboolean gtk_drag_dest_drop (GtkWidget *widget,
|
||||
gint x,
|
||||
gint y,
|
||||
guint time);
|
||||
static void gtk_drag_dest_set_widget (GtkDragDestInfo *info,
|
||||
GtkWidget *widget);
|
||||
|
||||
static GtkDragDestInfo * gtk_drag_get_dest_info (GdkDragContext *context,
|
||||
gboolean create);
|
||||
@@ -1638,7 +1640,7 @@ _gtk_drag_dest_handle_event (GtkWidget *toplevel,
|
||||
if (info->widget)
|
||||
{
|
||||
gtk_drag_dest_leave (info->widget, context, event->dnd.time);
|
||||
info->widget = NULL;
|
||||
gtk_drag_dest_set_widget (info, NULL);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1658,7 +1660,7 @@ _gtk_drag_dest_handle_event (GtkWidget *toplevel,
|
||||
if (info->widget)
|
||||
{
|
||||
gtk_drag_dest_leave (info->widget, context, event->dnd.time);
|
||||
info->widget = NULL;
|
||||
gtk_drag_dest_set_widget (info, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1690,7 +1692,7 @@ _gtk_drag_dest_handle_event (GtkWidget *toplevel,
|
||||
if (info->widget && !found)
|
||||
{
|
||||
gtk_drag_dest_leave (info->widget, context, event->dnd.time);
|
||||
info->widget = NULL;
|
||||
gtk_drag_dest_set_widget (info, NULL);
|
||||
}
|
||||
|
||||
/* Send a reply.
|
||||
@@ -1918,15 +1920,12 @@ gtk_drag_find_widget (GtkWidget *widget,
|
||||
found = callback (widget, context, x, y, time);
|
||||
|
||||
/* If so, send a "drag-leave" to the last widget */
|
||||
if (found)
|
||||
if (found && info->widget != widget)
|
||||
{
|
||||
if (info->widget && info->widget != widget)
|
||||
{
|
||||
gtk_drag_dest_leave (info->widget, context, time);
|
||||
}
|
||||
if (info->widget)
|
||||
gtk_drag_dest_leave (info->widget, context, time);
|
||||
|
||||
info->widget = widget;
|
||||
g_object_add_weak_pointer (G_OBJECT (widget), (gpointer *) &info->widget);
|
||||
gtk_drag_dest_set_widget (info, widget);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2008,9 +2007,26 @@ gtk_drag_proxy_begin (GtkWidget *widget,
|
||||
dest_info->proxy_source = source_info;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_drag_dest_set_widget (GtkDragDestInfo *info,
|
||||
GtkWidget *widget)
|
||||
{
|
||||
if (info->widget)
|
||||
g_object_remove_weak_pointer (G_OBJECT (info->widget), (gpointer *) &info->widget);
|
||||
|
||||
info->widget = widget;
|
||||
|
||||
if (info->widget)
|
||||
g_object_add_weak_pointer (G_OBJECT (info->widget), (gpointer *) &info->widget);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_drag_dest_info_destroy (gpointer data)
|
||||
{
|
||||
GtkDragDestInfo *info = (GtkDragDestInfo *)data;
|
||||
|
||||
gtk_drag_dest_set_widget (info, NULL);
|
||||
|
||||
g_slice_free (GtkDragDestInfo, data);
|
||||
}
|
||||
|
||||
@@ -2515,7 +2531,11 @@ gtk_drag_begin_internal (GtkWidget *widget,
|
||||
* not have set one.
|
||||
*/
|
||||
if (!info->icon_window && !info->icon_helper)
|
||||
info->icon_helper = gtk_drag_source_site_get_icon_helper (site);
|
||||
{
|
||||
info->icon_helper = gtk_drag_source_site_get_icon_helper (site);
|
||||
set_icon_helper (info->context, info->icon_helper,
|
||||
0, 0, TRUE);
|
||||
}
|
||||
|
||||
/* We need to composite the icon into the cursor, if we are
|
||||
* not using an icon window.
|
||||
@@ -3982,6 +4002,7 @@ gtk_drag_remove_icon (GtkDragSourceInfo *info)
|
||||
if (info->icon_window)
|
||||
{
|
||||
gtk_widget_hide (info->icon_window);
|
||||
gtk_widget_set_opacity (info->icon_window, 1.0);
|
||||
if (info->destroy_icon)
|
||||
gtk_widget_destroy (info->icon_window);
|
||||
|
||||
|
||||
@@ -3195,7 +3195,6 @@ realize_icon_info (GtkWidget *widget,
|
||||
GDK_BUTTON_RELEASE_MASK |
|
||||
GDK_BUTTON1_MOTION_MASK |
|
||||
GDK_BUTTON3_MOTION_MASK |
|
||||
GDK_POINTER_MOTION_HINT_MASK |
|
||||
GDK_POINTER_MOTION_MASK |
|
||||
GDK_ENTER_NOTIFY_MASK |
|
||||
GDK_LEAVE_NOTIFY_MASK);
|
||||
@@ -3314,7 +3313,6 @@ gtk_entry_realize (GtkWidget *widget)
|
||||
GDK_BUTTON_RELEASE_MASK |
|
||||
GDK_BUTTON1_MOTION_MASK |
|
||||
GDK_BUTTON3_MOTION_MASK |
|
||||
GDK_POINTER_MOTION_HINT_MASK |
|
||||
GDK_POINTER_MOTION_MASK |
|
||||
GDK_ENTER_NOTIFY_MASK |
|
||||
GDK_LEAVE_NOTIFY_MASK);
|
||||
|
||||
@@ -2509,10 +2509,10 @@ gtk_entry_completion_changed (GtkWidget *widget,
|
||||
|
||||
/* (re)install completion timeout */
|
||||
if (completion->priv->completion_timeout)
|
||||
{
|
||||
g_source_remove (completion->priv->completion_timeout);
|
||||
completion->priv->completion_timeout = 0;
|
||||
}
|
||||
{
|
||||
g_source_remove (completion->priv->completion_timeout);
|
||||
completion->priv->completion_timeout = 0;
|
||||
}
|
||||
|
||||
if (!gtk_entry_get_text (entry))
|
||||
return;
|
||||
|
||||
@@ -1033,11 +1033,12 @@ gtk_file_chooser_button_destroy (GtkWidget *widget)
|
||||
priv->dialog = NULL;
|
||||
}
|
||||
|
||||
if (priv->model && gtk_tree_model_get_iter_first (priv->model, &iter)) do
|
||||
if (priv->model && gtk_tree_model_get_iter_first (priv->model, &iter))
|
||||
{
|
||||
model_free_row_data (button, &iter);
|
||||
do
|
||||
model_free_row_data (button, &iter);
|
||||
while (gtk_tree_model_iter_next (priv->model, &iter));
|
||||
}
|
||||
while (gtk_tree_model_iter_next (priv->model, &iter));
|
||||
|
||||
if (priv->dnd_select_folder_cancellable)
|
||||
{
|
||||
|
||||
@@ -267,7 +267,8 @@ set_complete_on_load (GtkFileChooserEntry *chooser_entry,
|
||||
gboolean complete_on_load)
|
||||
{
|
||||
/* a completion was triggered, but we couldn't do it.
|
||||
* So no text was inserted when pressing tab, so we beep */
|
||||
* So no text was inserted when pressing tab, so we beep
|
||||
*/
|
||||
if (chooser_entry->complete_on_load && !complete_on_load)
|
||||
gtk_widget_error_bell (GTK_WIDGET (chooser_entry));
|
||||
|
||||
|
||||
+138
-94
@@ -229,6 +229,10 @@ struct _GtkFileChooserWidgetPrivate {
|
||||
GtkWidget *browse_path_bar_hbox;
|
||||
GtkSizeGroup *browse_path_bar_size_group;
|
||||
GtkWidget *browse_path_bar;
|
||||
GtkWidget *new_folder_name_entry;
|
||||
GtkWidget *new_folder_create_button;
|
||||
GtkWidget *new_folder_error_label;
|
||||
GtkWidget *new_folder_popover;
|
||||
|
||||
GtkFileSystemModel *browse_files_model;
|
||||
char *browse_files_last_selected_name;
|
||||
@@ -301,9 +305,6 @@ struct _GtkFileChooserWidgetPrivate {
|
||||
|
||||
guint location_changed_id;
|
||||
|
||||
GSource *edited_idle;
|
||||
char *edited_new_text;
|
||||
|
||||
gulong settings_signal_id;
|
||||
int icon_size;
|
||||
|
||||
@@ -655,8 +656,6 @@ gtk_file_chooser_widget_finalize (GObject *object)
|
||||
|
||||
g_free (priv->preview_display_name);
|
||||
|
||||
g_free (priv->edited_new_text);
|
||||
|
||||
impl->priv = NULL;
|
||||
|
||||
G_OBJECT_CLASS (gtk_file_chooser_widget_parent_class)->finalize (object);
|
||||
@@ -937,113 +936,158 @@ new_folder_button_clicked (GtkButton *button,
|
||||
gtk_tree_path_free (path);
|
||||
}
|
||||
|
||||
static GSource *
|
||||
add_idle_while_impl_is_alive (GtkFileChooserWidget *impl, GCallback callback)
|
||||
{
|
||||
GSource *source;
|
||||
|
||||
source = g_idle_source_new ();
|
||||
g_source_set_closure (source,
|
||||
g_cclosure_new_object (callback, G_OBJECT (impl)));
|
||||
g_source_attach (source, NULL);
|
||||
|
||||
return source;
|
||||
}
|
||||
|
||||
/* Idle handler for creating a new folder after editing its name cell, or for
|
||||
* canceling the editing.
|
||||
*/
|
||||
static gboolean
|
||||
edited_idle_cb (GtkFileChooserWidget *impl)
|
||||
static void
|
||||
new_folder_popover_active (GtkWidget *button,
|
||||
GParamSpec *pspec,
|
||||
GtkFileChooserWidget *impl)
|
||||
{
|
||||
GtkFileChooserWidgetPrivate *priv = impl->priv;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
g_source_destroy (priv->edited_idle);
|
||||
priv->edited_idle = NULL;
|
||||
gtk_entry_set_text (GTK_ENTRY (priv->new_folder_name_entry), "");
|
||||
gtk_widget_set_sensitive (priv->new_folder_create_button, FALSE);
|
||||
gtk_label_set_text (GTK_LABEL (priv->new_folder_error_label), "");
|
||||
}
|
||||
|
||||
_gtk_file_system_model_remove_editable (priv->browse_files_model);
|
||||
g_object_set (priv->list_name_renderer, "editable", FALSE, NULL);
|
||||
struct FileExistsData
|
||||
{
|
||||
GtkFileChooserWidget *impl;
|
||||
gboolean file_exists_and_is_not_folder;
|
||||
GFile *parent_file;
|
||||
GFile *file;
|
||||
};
|
||||
|
||||
gtk_widget_set_sensitive (priv->browse_new_folder_button, TRUE);
|
||||
static void
|
||||
name_exists_get_info_cb (GCancellable *cancellable,
|
||||
GFileInfo *info,
|
||||
const GError *error,
|
||||
gpointer user_data)
|
||||
{
|
||||
struct FileExistsData *data = user_data;
|
||||
GtkFileChooserWidget *impl = data->impl;
|
||||
GtkFileChooserWidgetPrivate *priv = impl->priv;
|
||||
|
||||
if (priv->edited_new_text /* not cancelled? */
|
||||
&& (strlen (priv->edited_new_text) != 0)
|
||||
&& (strcmp (priv->edited_new_text, DEFAULT_NEW_FOLDER_NAME) != 0)) /* Don't create folder if name is empty or has not been edited */
|
||||
if (cancellable != priv->file_exists_get_info_cancellable)
|
||||
goto out;
|
||||
|
||||
priv->file_exists_get_info_cancellable = NULL;
|
||||
|
||||
if (g_cancellable_is_cancelled (cancellable))
|
||||
goto out;
|
||||
|
||||
if (info != NULL)
|
||||
{
|
||||
GError *error = NULL;
|
||||
GFile *file;
|
||||
const gchar *msg;
|
||||
|
||||
file = g_file_get_child_for_display_name (priv->current_folder,
|
||||
priv->edited_new_text,
|
||||
&error);
|
||||
if (file)
|
||||
{
|
||||
GError *error = NULL;
|
||||
|
||||
if (g_file_make_directory (file, NULL, &error))
|
||||
change_folder_and_display_error (impl, file, FALSE);
|
||||
else
|
||||
error_creating_folder_dialog (impl, file, error);
|
||||
|
||||
g_object_unref (file);
|
||||
}
|
||||
if (_gtk_file_info_consider_as_directory (info))
|
||||
msg = _("A folder with that name already exists");
|
||||
else
|
||||
error_creating_folder_dialog (impl, file, error);
|
||||
msg = _("A file with that name already exists");
|
||||
|
||||
g_free (priv->edited_new_text);
|
||||
priv->edited_new_text = NULL;
|
||||
gtk_widget_set_sensitive (priv->new_folder_create_button, FALSE);
|
||||
gtk_label_set_text (GTK_LABEL (priv->new_folder_error_label), msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_set_sensitive (priv->new_folder_create_button, TRUE);
|
||||
gtk_label_set_text (GTK_LABEL (priv->new_folder_error_label), "");
|
||||
}
|
||||
|
||||
gdk_threads_leave ();
|
||||
|
||||
return FALSE;
|
||||
out:
|
||||
g_object_unref (impl);
|
||||
g_object_unref (data->file);
|
||||
g_object_unref (data->parent_file);
|
||||
g_free (data);
|
||||
g_object_unref (cancellable);
|
||||
}
|
||||
|
||||
static void
|
||||
queue_edited_idle (GtkFileChooserWidget *impl,
|
||||
const gchar *new_text)
|
||||
check_valid_folder_name (GtkFileChooserWidget *impl,
|
||||
const gchar *name)
|
||||
{
|
||||
GtkFileChooserWidgetPrivate *priv = impl->priv;
|
||||
|
||||
/* We create the folder in an idle handler so that we don't modify the tree
|
||||
* just now.
|
||||
*/
|
||||
gtk_widget_set_sensitive (priv->new_folder_create_button, FALSE);
|
||||
|
||||
if (!priv->edited_idle)
|
||||
priv->edited_idle = add_idle_while_impl_is_alive (impl, G_CALLBACK (edited_idle_cb));
|
||||
if (name[0] == '\0')
|
||||
gtk_label_set_text (GTK_LABEL (priv->new_folder_error_label), "");
|
||||
else if (strcmp (name, ".") == 0)
|
||||
gtk_label_set_text (GTK_LABEL (priv->new_folder_error_label),
|
||||
_("A folder cannot be called “.”"));
|
||||
else if (strcmp (name, "..") == 0)
|
||||
gtk_label_set_text (GTK_LABEL (priv->new_folder_error_label),
|
||||
_("A folder cannot be called “..”"));
|
||||
else if (strchr (name, '/') != NULL)
|
||||
gtk_label_set_text (GTK_LABEL (priv->new_folder_error_label),
|
||||
_("Folder names cannot contain “/”"));
|
||||
else
|
||||
{
|
||||
GFile *file;
|
||||
GError *error = NULL;
|
||||
|
||||
g_free (priv->edited_new_text);
|
||||
priv->edited_new_text = g_strdup (new_text);
|
||||
file = g_file_get_child_for_display_name (priv->current_folder, name, &error);
|
||||
if (file == NULL)
|
||||
{
|
||||
gtk_label_set_text (GTK_LABEL (priv->new_folder_error_label), error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
else
|
||||
{
|
||||
struct FileExistsData *data;
|
||||
|
||||
gtk_label_set_text (GTK_LABEL (priv->new_folder_error_label), "");
|
||||
|
||||
data = g_new0 (struct FileExistsData, 1);
|
||||
data->impl = g_object_ref (impl);
|
||||
data->parent_file = g_object_ref (priv->current_folder);
|
||||
data->file = g_object_ref (file);
|
||||
|
||||
if (priv->file_exists_get_info_cancellable)
|
||||
g_cancellable_cancel (priv->file_exists_get_info_cancellable);
|
||||
|
||||
priv->file_exists_get_info_cancellable =
|
||||
_gtk_file_system_get_info (priv->file_system,
|
||||
file,
|
||||
"standard::type",
|
||||
name_exists_get_info_cb,
|
||||
data);
|
||||
|
||||
g_object_unref (file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Callback used from the text cell renderer when the new folder is named */
|
||||
static void
|
||||
renderer_edited_cb (GtkCellRendererText *cell_renderer_text,
|
||||
const gchar *path,
|
||||
const gchar *new_text,
|
||||
GtkFileChooserWidget *impl)
|
||||
new_folder_name_changed (GtkEntry *entry,
|
||||
GtkFileChooserWidget *impl)
|
||||
{
|
||||
/* work around bug #154921 */
|
||||
g_object_set (cell_renderer_text,
|
||||
"mode", GTK_CELL_RENDERER_MODE_INERT, NULL);
|
||||
queue_edited_idle (impl, new_text);
|
||||
check_valid_folder_name (impl, gtk_entry_get_text (entry));
|
||||
}
|
||||
|
||||
/* Callback used from the text cell renderer when the new folder edition gets
|
||||
* canceled.
|
||||
*/
|
||||
static void
|
||||
renderer_editing_canceled_cb (GtkCellRendererText *cell_renderer_text,
|
||||
GtkFileChooserWidget *impl)
|
||||
new_folder_create_clicked (GtkButton *button,
|
||||
GtkFileChooserWidget *impl)
|
||||
{
|
||||
/* work around bug #154921 */
|
||||
g_object_set (cell_renderer_text,
|
||||
"mode", GTK_CELL_RENDERER_MODE_INERT, NULL);
|
||||
queue_edited_idle (impl, NULL);
|
||||
}
|
||||
GtkFileChooserWidgetPrivate *priv = impl->priv;
|
||||
GError *error = NULL;
|
||||
GFile *file;
|
||||
const gchar *name;
|
||||
|
||||
name = gtk_entry_get_text (GTK_ENTRY (priv->new_folder_name_entry));
|
||||
file = g_file_get_child_for_display_name (priv->current_folder, name, &error);
|
||||
|
||||
gtk_widget_hide (priv->new_folder_popover);
|
||||
|
||||
if (file)
|
||||
{
|
||||
if (g_file_make_directory (file, NULL, &error))
|
||||
change_folder_and_display_error (impl, file, FALSE);
|
||||
else
|
||||
error_creating_folder_dialog (impl, file, error);
|
||||
g_object_unref (file);
|
||||
}
|
||||
else
|
||||
error_creating_folder_dialog (impl, file, error);
|
||||
}
|
||||
|
||||
struct selection_check_closure {
|
||||
GtkFileChooserWidget *impl;
|
||||
@@ -1198,6 +1242,7 @@ browse_files_key_press_event_cb (GtkWidget *widget,
|
||||
|
||||
if ((event->keyval == GDK_KEY_slash
|
||||
|| event->keyval == GDK_KEY_KP_Divide
|
||||
|| g_unichar_isalnum (gdk_keyval_to_unicode (event->keyval))
|
||||
#ifdef G_OS_UNIX
|
||||
|| event->keyval == GDK_KEY_asciitilde
|
||||
#endif
|
||||
@@ -5481,14 +5526,6 @@ should_respond_after_confirm_overwrite (GtkFileChooserWidget *impl,
|
||||
}
|
||||
}
|
||||
|
||||
struct FileExistsData
|
||||
{
|
||||
GtkFileChooserWidget *impl;
|
||||
gboolean file_exists_and_is_not_folder;
|
||||
GFile *parent_file;
|
||||
GFile *file;
|
||||
};
|
||||
|
||||
static void
|
||||
name_entry_get_parent_info_cb (GCancellable *cancellable,
|
||||
GFileInfo *info,
|
||||
@@ -6541,7 +6578,7 @@ recent_start_loading (GtkFileChooserWidget *impl)
|
||||
load_data->items = NULL;
|
||||
|
||||
/* begin lazy loading the recent files into the model */
|
||||
priv->load_recent_id = gdk_threads_add_idle_full (G_PRIORITY_HIGH_IDLE + 30,
|
||||
priv->load_recent_id = gdk_threads_add_idle_full (G_PRIORITY_DEFAULT,
|
||||
recent_idle_load,
|
||||
load_data,
|
||||
recent_idle_cleanup);
|
||||
@@ -6964,6 +7001,8 @@ location_popup_handler (GtkFileChooserWidget *impl,
|
||||
operation_mode_set (impl, OPERATION_MODE_BROWSE);
|
||||
if (priv->current_folder)
|
||||
change_folder_and_display_error (impl, priv->current_folder, FALSE);
|
||||
else
|
||||
switch_to_home_dir (impl);
|
||||
}
|
||||
|
||||
if (priv->action == GTK_FILE_CHOOSER_ACTION_OPEN ||
|
||||
@@ -7488,6 +7527,10 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class)
|
||||
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, list_mtime_column);
|
||||
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, list_size_column);
|
||||
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, list_location_column);
|
||||
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, new_folder_name_entry);
|
||||
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, new_folder_create_button);
|
||||
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, new_folder_error_label);
|
||||
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, new_folder_popover);
|
||||
|
||||
/* And a *lot* of callbacks to bind ... */
|
||||
gtk_widget_class_bind_template_callback (widget_class, browse_files_key_press_event_cb);
|
||||
@@ -7500,8 +7543,6 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class)
|
||||
gtk_widget_class_bind_template_callback (widget_class, file_list_drag_motion_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, list_selection_changed);
|
||||
gtk_widget_class_bind_template_callback (widget_class, list_cursor_changed);
|
||||
gtk_widget_class_bind_template_callback (widget_class, renderer_editing_canceled_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, renderer_edited_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, filter_combo_changed);
|
||||
gtk_widget_class_bind_template_callback (widget_class, new_folder_button_clicked);
|
||||
gtk_widget_class_bind_template_callback (widget_class, path_bar_clicked);
|
||||
@@ -7510,6 +7551,9 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class)
|
||||
gtk_widget_class_bind_template_callback (widget_class, places_sidebar_show_enter_location_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, search_entry_activate_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, search_entry_stop_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, new_folder_popover_active);
|
||||
gtk_widget_class_bind_template_callback (widget_class, new_folder_name_changed);
|
||||
gtk_widget_class_bind_template_callback (widget_class, new_folder_create_clicked);
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
+49
-2
@@ -91,7 +91,46 @@
|
||||
*
|
||||
* If you need to initialize OpenGL state, e.g. buffer objects or
|
||||
* shaders, you should use the #GtkWidget::realize signal; you
|
||||
* can use the #GtkWidget::unrealize signal to clean up.
|
||||
* can use the #GtkWidget::unrealize signal to clean up. Since the
|
||||
* #GdkGLContext creation and initialization may fail, you will
|
||||
* need to check for errors, using gtk_gl_area_get_error(). An example
|
||||
* of how to safely initialize the GL state is:
|
||||
*
|
||||
* |[<!-- language="C" -->
|
||||
* static void
|
||||
* on_realize (GtkGLarea *area)
|
||||
* {
|
||||
* // We need to make the context current if we want to
|
||||
* // call GL API
|
||||
* gtk_gl_area_make_current (area);
|
||||
*
|
||||
* // If there were errors during the initialization or
|
||||
* // when trying to make the context current, this
|
||||
* // function will return a #GError for you to catch
|
||||
* if (gtk_gl_area_get_error (area) != NULL)
|
||||
* return;
|
||||
*
|
||||
* // You can also use gtk_gl_area_set_error() in order
|
||||
* // to show eventual initialization errors on the
|
||||
* // GtkGLArea widget itself
|
||||
* GError *internal_error = NULL;
|
||||
* init_buffer_objects (&error);
|
||||
* if (error != NULL)
|
||||
* {
|
||||
* gtk_gl_area_set_error (area, error);
|
||||
* g_error_free (error);
|
||||
* return;
|
||||
* }
|
||||
*
|
||||
* init_shaders (&error);
|
||||
* if (error != NULL)
|
||||
* {
|
||||
* gtk_gl_area_set_error (area, error);
|
||||
* g_error_free (error);
|
||||
* return;
|
||||
* }
|
||||
* }
|
||||
* ]|
|
||||
*
|
||||
* If you need to change the options for creating the #GdkGLContext
|
||||
* you should use the #GtkGLArea::create-context signal.
|
||||
@@ -448,6 +487,11 @@ gtk_gl_area_attach_buffers (GtkGLArea *area)
|
||||
{
|
||||
GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area);
|
||||
|
||||
g_return_if_fail (GTK_IS_GL_AREA (area));
|
||||
|
||||
if (priv->context == NULL)
|
||||
return;
|
||||
|
||||
gtk_gl_area_make_current (area);
|
||||
|
||||
if (!priv->have_buffers)
|
||||
@@ -631,6 +675,9 @@ gtk_gl_area_draw (GtkWidget *widget,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (priv->context == NULL)
|
||||
return FALSE;
|
||||
|
||||
gtk_gl_area_make_current (area);
|
||||
|
||||
gtk_gl_area_attach_buffers (area);
|
||||
@@ -1301,6 +1348,6 @@ gtk_gl_area_make_current (GtkGLArea *area)
|
||||
|
||||
g_return_if_fail (gtk_widget_get_realized (widget));
|
||||
|
||||
if (priv->context)
|
||||
if (priv->context != NULL)
|
||||
gdk_gl_context_make_current (priv->context);
|
||||
}
|
||||
|
||||
+1
-1
@@ -876,7 +876,7 @@ _gtk_icon_helper_get_size (GtkIconHelper *self,
|
||||
width = gdk_pixbuf_animation_get_width (self->priv->animation);
|
||||
height = gdk_pixbuf_animation_get_height (self->priv->animation);
|
||||
}
|
||||
else if (self->priv->icon_size != -1)
|
||||
else if (self->priv->icon_size != GTK_ICON_SIZE_INVALID)
|
||||
{
|
||||
ensure_icon_size (self, context, &width, &height);
|
||||
}
|
||||
|
||||
+38
-7
@@ -725,6 +725,21 @@ gtk_label_class_init (GtkLabelClass *class)
|
||||
_gtk_marshal_BOOLEAN__STRING,
|
||||
G_TYPE_BOOLEAN, 1, G_TYPE_STRING);
|
||||
|
||||
/**
|
||||
* GtkLabel:label:
|
||||
*
|
||||
* The contents of the label.
|
||||
*
|
||||
* If the string contains [Pango XML markup][PangoMarkupFormat], you will
|
||||
* have to set the #GtkLabel:use-markup property to %TRUE in order for the
|
||||
* label to display the markup attributes. See also gtk_label_set_markup()
|
||||
* for a convenience function that sets both this property and the
|
||||
* #GtkLabel:use-markup property at the same time.
|
||||
*
|
||||
* If the string contains underlines acting as mnemonics, you will have to
|
||||
* set the #GtkLabel:use-underline property to %TRUE in order for the label
|
||||
* to display them.
|
||||
*/
|
||||
g_object_class_install_property (gobject_class,
|
||||
PROP_LABEL,
|
||||
g_param_spec_string ("label",
|
||||
@@ -2210,7 +2225,13 @@ gtk_label_recalculate (GtkLabel *label)
|
||||
* Sets the text within the #GtkLabel widget. It overwrites any text that
|
||||
* was there before.
|
||||
*
|
||||
* This will also clear any previously set mnemonic accelerators.
|
||||
* This function will clear any previously set mnemonic accelerators, and
|
||||
* set the #GtkLabel:use-underline property to %FALSE as a side effect.
|
||||
*
|
||||
* This function will set the #GtkLabel:use-markup property to %FALSE
|
||||
* as a side effect.
|
||||
*
|
||||
* See also: gtk_label_set_markup()
|
||||
**/
|
||||
void
|
||||
gtk_label_set_text (GtkLabel *label,
|
||||
@@ -2294,7 +2315,7 @@ gtk_label_get_attributes (GtkLabel *label)
|
||||
*
|
||||
* Sets the text of the label. The label is interpreted as
|
||||
* including embedded underlines and/or Pango markup depending
|
||||
* on the values of the #GtkLabel:use-underline" and
|
||||
* on the values of the #GtkLabel:use-underline and
|
||||
* #GtkLabel:use-markup properties.
|
||||
**/
|
||||
void
|
||||
@@ -2706,9 +2727,11 @@ gtk_label_set_markup_internal (GtkLabel *label,
|
||||
*
|
||||
* Parses @str which is marked up with the
|
||||
* [Pango text markup language][PangoMarkupFormat], setting the
|
||||
* label’s text and attribute list based on the parse results. If the @str is
|
||||
* external data, you may need to escape it with g_markup_escape_text() or
|
||||
* g_markup_printf_escaped():
|
||||
* label’s text and attribute list based on the parse results.
|
||||
*
|
||||
* If the @str is external data, you may need to escape it with
|
||||
* g_markup_escape_text() or g_markup_printf_escaped():
|
||||
*
|
||||
* |[<!-- language="C" -->
|
||||
* const char *format = "<span style=\"italic\">\%s</span>";
|
||||
* char *markup;
|
||||
@@ -2717,6 +2740,15 @@ gtk_label_set_markup_internal (GtkLabel *label,
|
||||
* gtk_label_set_markup (GTK_LABEL (label), markup);
|
||||
* g_free (markup);
|
||||
* ]|
|
||||
*
|
||||
* This function will set the #GtkLabel:use-markup property to %TRUE as
|
||||
* a side effect.
|
||||
*
|
||||
* If you set the label contents using the #GtkLabel:label property you
|
||||
* should also ensure that you set the #GtkLabel:use-markup property
|
||||
* accordingly.
|
||||
*
|
||||
* See also: gtk_label_set_text()
|
||||
**/
|
||||
void
|
||||
gtk_label_set_markup (GtkLabel *label,
|
||||
@@ -5357,8 +5389,7 @@ gtk_label_create_window (GtkLabel *label)
|
||||
GDK_BUTTON_RELEASE_MASK |
|
||||
GDK_LEAVE_NOTIFY_MASK |
|
||||
GDK_BUTTON_MOTION_MASK |
|
||||
GDK_POINTER_MOTION_MASK |
|
||||
GDK_POINTER_MOTION_HINT_MASK;
|
||||
GDK_POINTER_MOTION_MASK;
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_NOREDIR;
|
||||
if (gtk_widget_is_sensitive (widget) && priv->select_info && priv->select_info->selectable)
|
||||
{
|
||||
|
||||
@@ -3610,9 +3610,21 @@ gtk_list_box_bound_model_changed (GListModel *list,
|
||||
|
||||
item = g_list_model_get_item (list, position + i);
|
||||
widget = priv->create_widget_func (item, priv->create_widget_func_data);
|
||||
|
||||
/* We allow the create_widget_func to either return a full
|
||||
* reference or a floating reference. If we got the floating
|
||||
* reference, then turn it into a full reference now. That means
|
||||
* that gtk_list_box_insert() will take another full reference.
|
||||
* Finally, we'll release this full reference below, leaving only
|
||||
* the one held by the box.
|
||||
*/
|
||||
if (g_object_is_floating (widget))
|
||||
g_object_ref_sink (widget);
|
||||
|
||||
gtk_widget_show_all (widget);
|
||||
gtk_list_box_insert (box, widget, position + i);
|
||||
|
||||
g_object_unref (widget);
|
||||
g_object_unref (item);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -171,13 +171,13 @@ typedef void (*GtkListBoxUpdateHeaderFunc) (GtkListBoxRow *row,
|
||||
|
||||
/**
|
||||
* GtkListBoxCreateWidgetFunc:
|
||||
* @item: the item from the model for which to create a widget for
|
||||
* @item: (type GObject): the item from the model for which to create a widget for
|
||||
* @user_data: (closure): user data
|
||||
*
|
||||
* Called for list boxes that are bound to a #GListModel with
|
||||
* gtk_list_box_bind_model() for each item that gets added to the model.
|
||||
*
|
||||
* Returns: a #GtkWidget that represents @item
|
||||
* Returns: (transfer full): a #GtkWidget that represents @item
|
||||
*
|
||||
* Since: 3.16
|
||||
*/
|
||||
|
||||
+1
-1
@@ -890,7 +890,7 @@ set_align_widget_pointer (GtkMenuButton *menu_button,
|
||||
|
||||
priv->align_widget = align_widget;
|
||||
|
||||
if (align_widget)
|
||||
if (priv->align_widget)
|
||||
g_object_add_weak_pointer (G_OBJECT (priv->align_widget), (gpointer *) &priv->align_widget);
|
||||
}
|
||||
|
||||
|
||||
@@ -1436,13 +1436,10 @@ create_show_processes_dialog (GtkMountOperation *op,
|
||||
gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0);
|
||||
|
||||
if (secondary != NULL)
|
||||
{
|
||||
s = g_strdup_printf ("<big><b>%s</b></big>\n\n%s", primary, secondary);
|
||||
}
|
||||
s = g_strdup_printf ("<big><b>%s</b></big>\n\n%s", primary, secondary);
|
||||
else
|
||||
{
|
||||
s = g_strdup_printf ("%s", primary);
|
||||
}
|
||||
s = g_strdup_printf ("%s", primary);
|
||||
|
||||
g_free (primary);
|
||||
label = gtk_label_new (NULL);
|
||||
gtk_label_set_markup (GTK_LABEL (label), s);
|
||||
@@ -1518,8 +1515,8 @@ create_show_processes_dialog (GtkMountOperation *op,
|
||||
priv->process_list_store = list_store;
|
||||
priv->process_tree_view = tree_view;
|
||||
/* set pointers to NULL when dialog goes away */
|
||||
g_object_add_weak_pointer (G_OBJECT (list_store), (gpointer *) &priv->process_list_store);
|
||||
g_object_add_weak_pointer (G_OBJECT (tree_view), (gpointer *) &priv->process_tree_view);
|
||||
g_object_add_weak_pointer (G_OBJECT (priv->process_list_store), (gpointer *) &priv->process_list_store);
|
||||
g_object_add_weak_pointer (G_OBJECT (priv->process_tree_view), (gpointer *) &priv->process_tree_view);
|
||||
|
||||
g_object_unref (list_store);
|
||||
g_object_ref (op);
|
||||
|
||||
+3
-2
@@ -24,6 +24,7 @@
|
||||
#if defined(HAVE__NL_PAPER_HEIGHT) && defined(HAVE__NL_PAPER_WIDTH)
|
||||
#include <langinfo.h>
|
||||
#endif
|
||||
#include <math.h>
|
||||
|
||||
#include "gtkpapersize.h"
|
||||
#include "gtkprintutils.h"
|
||||
@@ -442,8 +443,8 @@ gtk_paper_size_new_from_ipp (const gchar *ipp_name,
|
||||
x_dimension = _gtk_print_convert_from_mm (standard_names_offsets[i].width, GTK_UNIT_POINTS);
|
||||
y_dimension = _gtk_print_convert_from_mm (standard_names_offsets[i].height, GTK_UNIT_POINTS);
|
||||
|
||||
if (abs (x_dimension - width) <= PAPER_SIZE_TOLERANCE &&
|
||||
abs (y_dimension - height) <= PAPER_SIZE_TOLERANCE)
|
||||
if (fabs (x_dimension - width) <= PAPER_SIZE_TOLERANCE &&
|
||||
fabs (y_dimension - height) <= PAPER_SIZE_TOLERANCE)
|
||||
{
|
||||
display_name = g_strdup (g_dpgettext2 (GETTEXT_PACKAGE,
|
||||
"paper size",
|
||||
|
||||
+4
-1
@@ -304,7 +304,10 @@ gtk_popover_dispose (GObject *object)
|
||||
GtkPopoverPrivate *priv = popover->priv;
|
||||
|
||||
if (priv->window)
|
||||
_gtk_window_remove_popover (priv->window, GTK_WIDGET (object));
|
||||
{
|
||||
g_signal_handlers_disconnect_by_data (priv->window, popover);
|
||||
_gtk_window_remove_popover (priv->window, GTK_WIDGET (object));
|
||||
}
|
||||
|
||||
priv->window = NULL;
|
||||
|
||||
|
||||
@@ -1785,7 +1785,7 @@ _gtk_print_operation_set_status (GtkPrintOperation *op,
|
||||
NC_("print operation status", "Finished with error")
|
||||
};
|
||||
|
||||
if (status < 0 || status > GTK_PRINT_STATUS_FINISHED_ABORTED)
|
||||
if (status > GTK_PRINT_STATUS_FINISHED_ABORTED)
|
||||
status = GTK_PRINT_STATUS_FINISHED_ABORTED;
|
||||
|
||||
if (string == NULL)
|
||||
|
||||
@@ -207,7 +207,7 @@ static GObject *gtk_print_unix_dialog_buildable_get_internal_child (GtkBuildabl
|
||||
GtkBuilder *builder,
|
||||
const gchar *childname);
|
||||
|
||||
static const gchar const common_paper_sizes[][16] = {
|
||||
static const gchar common_paper_sizes[][16] = {
|
||||
"na_letter",
|
||||
"na_legal",
|
||||
"iso_a4",
|
||||
|
||||
+34
-29
@@ -235,14 +235,14 @@ gtk_progress_bar_class_init (GtkProgressBarClass *class)
|
||||
g_param_spec_int ("xspacing",
|
||||
P_("X spacing"),
|
||||
P_("Extra spacing applied to the width of a progress bar."),
|
||||
0, G_MAXINT, 7,
|
||||
0, G_MAXINT, 2,
|
||||
G_PARAM_READWRITE));
|
||||
|
||||
gtk_widget_class_install_style_property (widget_class,
|
||||
g_param_spec_int ("yspacing",
|
||||
P_("Y spacing"),
|
||||
P_("Extra spacing applied to the height of a progress bar."),
|
||||
0, G_MAXINT, 7,
|
||||
0, G_MAXINT, 2,
|
||||
G_PARAM_READWRITE));
|
||||
|
||||
/**
|
||||
@@ -471,7 +471,7 @@ gtk_progress_bar_get_preferred_width (GtkWidget *widget,
|
||||
PangoLayout *layout;
|
||||
gint width;
|
||||
gint xspacing;
|
||||
gint min_width;
|
||||
gint bar_width;
|
||||
|
||||
g_return_if_fail (GTK_IS_PROGRESS_BAR (widget));
|
||||
|
||||
@@ -479,17 +479,18 @@ gtk_progress_bar_get_preferred_width (GtkWidget *widget,
|
||||
state = gtk_widget_get_state_flags (widget);
|
||||
gtk_style_context_get_padding (style_context, state, &padding);
|
||||
|
||||
gtk_widget_style_get (widget,
|
||||
"xspacing", &xspacing,
|
||||
NULL);
|
||||
|
||||
pbar = GTK_PROGRESS_BAR (widget);
|
||||
priv = pbar->priv;
|
||||
|
||||
width = padding.left + padding.right + xspacing;
|
||||
width = padding.left + padding.right;
|
||||
|
||||
if (priv->show_text)
|
||||
{
|
||||
gtk_widget_style_get (widget,
|
||||
"xspacing", &xspacing,
|
||||
NULL);
|
||||
width += xspacing;
|
||||
|
||||
buf = get_current_text (pbar);
|
||||
layout = gtk_widget_create_pango_layout (widget, buf);
|
||||
|
||||
@@ -521,14 +522,14 @@ gtk_progress_bar_get_preferred_width (GtkWidget *widget,
|
||||
|
||||
if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
|
||||
gtk_widget_style_get (widget,
|
||||
"min-horizontal-bar-width", &min_width,
|
||||
"min-horizontal-bar-width", &bar_width,
|
||||
NULL);
|
||||
else
|
||||
gtk_widget_style_get (widget,
|
||||
"min-vertical-bar-width", &min_width,
|
||||
"min-vertical-bar-width", &bar_width,
|
||||
NULL);
|
||||
|
||||
*minimum = *natural = MAX (min_width, width);
|
||||
*minimum = *natural = width + bar_width;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -546,7 +547,7 @@ gtk_progress_bar_get_preferred_height (GtkWidget *widget,
|
||||
PangoLayout *layout;
|
||||
gint height;
|
||||
gint yspacing;
|
||||
gint min_height;
|
||||
gint bar_height;
|
||||
|
||||
g_return_if_fail (GTK_IS_PROGRESS_BAR (widget));
|
||||
|
||||
@@ -554,17 +555,18 @@ gtk_progress_bar_get_preferred_height (GtkWidget *widget,
|
||||
state = gtk_widget_get_state_flags (widget);
|
||||
gtk_style_context_get_padding (context, state, &padding);
|
||||
|
||||
gtk_widget_style_get (widget,
|
||||
"yspacing", &yspacing,
|
||||
NULL);
|
||||
|
||||
pbar = GTK_PROGRESS_BAR (widget);
|
||||
priv = pbar->priv;
|
||||
|
||||
height = padding.top + padding.bottom + yspacing;
|
||||
height = padding.top + padding.bottom;
|
||||
|
||||
if (priv->show_text)
|
||||
{
|
||||
gtk_widget_style_get (widget,
|
||||
"yspacing", &yspacing,
|
||||
NULL);
|
||||
height += yspacing;
|
||||
|
||||
buf = get_current_text (pbar);
|
||||
layout = gtk_widget_create_pango_layout (widget, buf);
|
||||
|
||||
@@ -578,14 +580,14 @@ gtk_progress_bar_get_preferred_height (GtkWidget *widget,
|
||||
|
||||
if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
|
||||
gtk_widget_style_get (widget,
|
||||
"min-horizontal-bar-height", &min_height,
|
||||
"min-horizontal-bar-height", &bar_height,
|
||||
NULL);
|
||||
else
|
||||
gtk_widget_style_get (widget,
|
||||
"min-vertical-bar-height", &min_height,
|
||||
"min-vertical-bar-height", &bar_height,
|
||||
NULL);
|
||||
|
||||
*minimum = *natural = MAX (min_height, height);
|
||||
*minimum = *natural = height + bar_height;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -883,16 +885,11 @@ gtk_progress_bar_paint_text (GtkProgressBar *pbar,
|
||||
PangoLayout *layout;
|
||||
PangoRectangle logical_rect;
|
||||
GdkRectangle prelight_clip, start_clip, end_clip;
|
||||
gfloat text_xalign = 0.5;
|
||||
gfloat text_yalign = 0.0;
|
||||
|
||||
context = gtk_widget_get_style_context (widget);
|
||||
state = gtk_widget_get_state_flags (widget);
|
||||
gtk_style_context_get_padding (context, state, &padding);
|
||||
|
||||
if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_LTR)
|
||||
text_xalign = 1.0 - text_xalign;
|
||||
|
||||
buf = get_current_text (pbar);
|
||||
|
||||
layout = gtk_widget_create_pango_layout (widget, buf);
|
||||
@@ -902,8 +899,16 @@ gtk_progress_bar_paint_text (GtkProgressBar *pbar,
|
||||
|
||||
pango_layout_get_pixel_extents (layout, NULL, &logical_rect);
|
||||
|
||||
x = padding.left + 1 + text_xalign * (width - padding.left - padding.right - 2 - logical_rect.width);
|
||||
y = padding.top + 1 + text_yalign * (height - padding.top - padding.bottom - 2 - logical_rect.height);
|
||||
if (orientation == GTK_ORIENTATION_HORIZONTAL)
|
||||
{
|
||||
x = padding.left + (width - padding.left - padding.right - 2 - logical_rect.width) / 2;
|
||||
y = padding.top + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
x = padding.left + 1;
|
||||
y = padding.top + 1 + (height - padding.top - padding.bottom - 2 - logical_rect.height) / 2;
|
||||
}
|
||||
|
||||
rect.x = padding.left;
|
||||
rect.y = padding.top;
|
||||
@@ -1026,12 +1031,12 @@ gtk_progress_bar_draw (GtkWidget *widget,
|
||||
|
||||
if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
|
||||
{
|
||||
bar_height = MIN_HORIZONTAL_BAR_HEIGHT;
|
||||
gtk_widget_style_get (widget, "min-horizontal-bar-height", &bar_height, NULL);
|
||||
bar_width = width;
|
||||
}
|
||||
else
|
||||
{
|
||||
bar_width = MIN_VERTICAL_BAR_WIDTH;
|
||||
gtk_widget_style_get (widget, "min-vertical-bar-width", &bar_width, NULL);
|
||||
bar_height = height;
|
||||
}
|
||||
|
||||
|
||||
+23
-80
@@ -26,6 +26,7 @@
|
||||
|
||||
#include "gtkradiobutton.h"
|
||||
|
||||
#include "gtkcontainerprivate.h"
|
||||
#include "gtkbuttonprivate.h"
|
||||
#include "gtktogglebuttonprivate.h"
|
||||
#include "gtklabel.h"
|
||||
@@ -593,53 +594,6 @@ gtk_radio_button_destroy (GtkWidget *widget)
|
||||
GTK_WIDGET_CLASS (gtk_radio_button_parent_class)->destroy (widget);
|
||||
}
|
||||
|
||||
static void
|
||||
get_coordinates (GtkWidget *widget,
|
||||
GtkWidget *reference,
|
||||
gint *x,
|
||||
gint *y)
|
||||
{
|
||||
GtkAllocation allocation;
|
||||
|
||||
gtk_widget_get_allocation (widget, &allocation);
|
||||
*x = allocation.x + allocation.width / 2;
|
||||
*y = allocation.y + allocation.height / 2;
|
||||
|
||||
gtk_widget_translate_coordinates (widget, reference, *x, *y, x, y);
|
||||
}
|
||||
|
||||
static gint
|
||||
left_right_compare (gconstpointer a,
|
||||
gconstpointer b,
|
||||
gpointer data)
|
||||
{
|
||||
gint x1, y1, x2, y2;
|
||||
|
||||
get_coordinates ((GtkWidget *)a, data, &x1, &y1);
|
||||
get_coordinates ((GtkWidget *)b, data, &x2, &y2);
|
||||
|
||||
if (y1 == y2)
|
||||
return (x1 < x2) ? -1 : ((x1 == x2) ? 0 : 1);
|
||||
else
|
||||
return (y1 < y2) ? -1 : 1;
|
||||
}
|
||||
|
||||
static gint
|
||||
up_down_compare (gconstpointer a,
|
||||
gconstpointer b,
|
||||
gpointer data)
|
||||
{
|
||||
gint x1, y1, x2, y2;
|
||||
|
||||
get_coordinates ((GtkWidget *)a, data, &x1, &y1);
|
||||
get_coordinates ((GtkWidget *)b, data, &x2, &y2);
|
||||
|
||||
if (x1 == x2)
|
||||
return (y1 < y2) ? -1 : ((y1 == y2) ? 0 : 1);
|
||||
else
|
||||
return (x1 < x2) ? -1 : 1;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gtk_radio_button_focus (GtkWidget *widget,
|
||||
GtkDirectionType direction)
|
||||
@@ -653,45 +607,34 @@ gtk_radio_button_focus (GtkWidget *widget,
|
||||
*/
|
||||
if (!gtk_toggle_button_get_mode (GTK_TOGGLE_BUTTON (widget)))
|
||||
return GTK_WIDGET_CLASS (gtk_radio_button_parent_class)->focus (widget, direction);
|
||||
|
||||
|
||||
if (gtk_widget_is_focus (widget))
|
||||
{
|
||||
GSList *focus_list, *tmp_list;
|
||||
GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
|
||||
GList *children, *focus_list, *tmp_list;
|
||||
GtkWidget *toplevel;
|
||||
GtkWidget *new_focus = NULL;
|
||||
GSList *l;
|
||||
|
||||
switch (direction)
|
||||
{
|
||||
case GTK_DIR_LEFT:
|
||||
case GTK_DIR_RIGHT:
|
||||
focus_list = g_slist_copy (priv->group);
|
||||
focus_list = g_slist_sort_with_data (focus_list, left_right_compare, toplevel);
|
||||
break;
|
||||
case GTK_DIR_UP:
|
||||
case GTK_DIR_DOWN:
|
||||
focus_list = g_slist_copy (priv->group);
|
||||
focus_list = g_slist_sort_with_data (focus_list, up_down_compare, toplevel);
|
||||
break;
|
||||
case GTK_DIR_TAB_FORWARD:
|
||||
case GTK_DIR_TAB_BACKWARD:
|
||||
/* fall through */
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
if (direction == GTK_DIR_TAB_FORWARD ||
|
||||
direction == GTK_DIR_TAB_BACKWARD)
|
||||
return FALSE;
|
||||
|
||||
if (direction == GTK_DIR_LEFT || direction == GTK_DIR_UP)
|
||||
focus_list = g_slist_reverse (focus_list);
|
||||
toplevel = gtk_widget_get_toplevel (widget);
|
||||
children = NULL;
|
||||
for (l = priv->group; l; l = l->next)
|
||||
children = g_list_prepend (children, l->data);
|
||||
|
||||
tmp_list = g_slist_find (focus_list, widget);
|
||||
focus_list = _gtk_container_focus_sort (GTK_CONTAINER (toplevel), children, direction, widget);
|
||||
tmp_list = g_list_find (focus_list, widget);
|
||||
|
||||
if (tmp_list)
|
||||
{
|
||||
tmp_list = tmp_list->next;
|
||||
|
||||
|
||||
while (tmp_list)
|
||||
{
|
||||
GtkWidget *child = tmp_list->data;
|
||||
|
||||
|
||||
if (gtk_widget_get_mapped (child) && gtk_widget_is_sensitive (child))
|
||||
{
|
||||
new_focus = child;
|
||||
@@ -709,18 +652,19 @@ gtk_radio_button_focus (GtkWidget *widget,
|
||||
while (tmp_list)
|
||||
{
|
||||
GtkWidget *child = tmp_list->data;
|
||||
|
||||
|
||||
if (gtk_widget_get_mapped (child) && gtk_widget_is_sensitive (child))
|
||||
{
|
||||
new_focus = child;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
tmp_list = tmp_list->next;
|
||||
}
|
||||
}
|
||||
|
||||
g_slist_free (focus_list);
|
||||
|
||||
g_list_free (focus_list);
|
||||
g_list_free (children);
|
||||
|
||||
if (new_focus)
|
||||
{
|
||||
@@ -734,12 +678,11 @@ gtk_radio_button_focus (GtkWidget *widget,
|
||||
else
|
||||
{
|
||||
GtkRadioButton *selected_button = NULL;
|
||||
|
||||
|
||||
/* We accept the focus if, we don't have the focus and
|
||||
* - we are the currently active button in the group
|
||||
* - there is no currently active radio button.
|
||||
*/
|
||||
|
||||
tmp_slist = priv->group;
|
||||
while (tmp_slist)
|
||||
{
|
||||
@@ -748,7 +691,7 @@ gtk_radio_button_focus (GtkWidget *widget,
|
||||
selected_button = tmp_slist->data;
|
||||
tmp_slist = tmp_slist->next;
|
||||
}
|
||||
|
||||
|
||||
if (selected_button && selected_button != radio_button)
|
||||
return FALSE;
|
||||
|
||||
|
||||
+66
-8
@@ -208,6 +208,8 @@ gtk_radio_menu_item_set_group (GtkRadioMenuItem *radio_menu_item,
|
||||
|
||||
tmp_item->priv->group = priv->group;
|
||||
}
|
||||
|
||||
_gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (radio_menu_item), FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -282,7 +284,7 @@ gtk_radio_menu_item_new_with_mnemonic (GSList *group,
|
||||
|
||||
/**
|
||||
* gtk_radio_menu_item_new_from_widget: (constructor)
|
||||
* @group: An existing #GtkRadioMenuItem
|
||||
* @group: (allow-none): An existing #GtkRadioMenuItem
|
||||
*
|
||||
* Creates a new #GtkRadioMenuItem adding it to the same group as @group.
|
||||
*
|
||||
@@ -295,7 +297,7 @@ gtk_radio_menu_item_new_from_widget (GtkRadioMenuItem *group)
|
||||
{
|
||||
GSList *list = NULL;
|
||||
|
||||
g_return_val_if_fail (GTK_IS_RADIO_MENU_ITEM (group), NULL);
|
||||
g_return_val_if_fail (group == NULL || GTK_IS_RADIO_MENU_ITEM (group), NULL);
|
||||
|
||||
if (group)
|
||||
list = gtk_radio_menu_item_get_group (group);
|
||||
@@ -305,8 +307,8 @@ gtk_radio_menu_item_new_from_widget (GtkRadioMenuItem *group)
|
||||
|
||||
/**
|
||||
* gtk_radio_menu_item_new_with_mnemonic_from_widget: (constructor)
|
||||
* @group: An existing #GtkRadioMenuItem
|
||||
* @label: the text of the button, with an underscore in front of the
|
||||
* @group: (allow-none): An existing #GtkRadioMenuItem
|
||||
* @label: (allow-none): the text of the button, with an underscore in front of the
|
||||
* mnemonic character
|
||||
*
|
||||
* Creates a new GtkRadioMenuItem containing a label. The label will be
|
||||
@@ -325,7 +327,7 @@ gtk_radio_menu_item_new_with_mnemonic_from_widget (GtkRadioMenuItem *group,
|
||||
{
|
||||
GSList *list = NULL;
|
||||
|
||||
g_return_val_if_fail (GTK_IS_RADIO_MENU_ITEM (group), NULL);
|
||||
g_return_val_if_fail (group == NULL || GTK_IS_RADIO_MENU_ITEM (group), NULL);
|
||||
|
||||
if (group)
|
||||
list = gtk_radio_menu_item_get_group (group);
|
||||
@@ -335,8 +337,8 @@ gtk_radio_menu_item_new_with_mnemonic_from_widget (GtkRadioMenuItem *group,
|
||||
|
||||
/**
|
||||
* gtk_radio_menu_item_new_with_label_from_widget: (constructor)
|
||||
* @group: an existing #GtkRadioMenuItem
|
||||
* @label: the text for the label
|
||||
* @group: (allow-none): an existing #GtkRadioMenuItem
|
||||
* @label: (allow-none): the text for the label
|
||||
*
|
||||
* Creates a new GtkRadioMenuItem whose child is a simple GtkLabel.
|
||||
* The new #GtkRadioMenuItem is added to the same group as @group.
|
||||
@@ -351,7 +353,7 @@ gtk_radio_menu_item_new_with_label_from_widget (GtkRadioMenuItem *group,
|
||||
{
|
||||
GSList *list = NULL;
|
||||
|
||||
g_return_val_if_fail (GTK_IS_RADIO_MENU_ITEM (group), NULL);
|
||||
g_return_val_if_fail (group == NULL || GTK_IS_RADIO_MENU_ITEM (group), NULL);
|
||||
|
||||
if (group)
|
||||
list = gtk_radio_menu_item_get_group (group);
|
||||
@@ -556,3 +558,59 @@ gtk_radio_menu_item_activate (GtkMenuItem *menu_item)
|
||||
|
||||
gtk_widget_queue_draw (GTK_WIDGET (radio_menu_item));
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_radio_menu_item_join_group:
|
||||
* @radio_menu_item: a #GtkRadioMenuItem
|
||||
* @group_source: (allow-none): a #GtkRadioMenuItem whose group we are
|
||||
* joining, or %NULL to remove the @radio_menu_item from its current
|
||||
* group
|
||||
*
|
||||
* Joins a #GtkRadioMenuItem object to the group of another #GtkRadioMenuItem
|
||||
* object.
|
||||
*
|
||||
* This function should be used by language bindings to avoid the memory
|
||||
* manangement of the opaque #GSList of gtk_radio_menu_item_get_group()
|
||||
* and gtk_radio_menu_item_set_group().
|
||||
*
|
||||
* A common way to set up a group of #GtkRadioMenuItem instances is:
|
||||
*
|
||||
* |[
|
||||
* GtkRadioMenuItem *last_item = NULL;
|
||||
*
|
||||
* while ( ...more items to add... )
|
||||
* {
|
||||
* GtkRadioMenuItem *radio_item;
|
||||
*
|
||||
* radio_item = gtk_radio_menu_item_new (...);
|
||||
*
|
||||
* gtk_radio_menu_item_join_group (radio_item, last_item);
|
||||
* last_item = radio_item;
|
||||
* }
|
||||
* ]|
|
||||
*
|
||||
* Since: 3.18
|
||||
*/
|
||||
void
|
||||
gtk_radio_menu_item_join_group (GtkRadioMenuItem *radio_menu_item,
|
||||
GtkRadioMenuItem *group_source)
|
||||
{
|
||||
g_return_if_fail (GTK_IS_RADIO_MENU_ITEM (radio_menu_item));
|
||||
g_return_if_fail (group_source == NULL || GTK_IS_RADIO_MENU_ITEM (group_source));
|
||||
|
||||
if (group_source != NULL)
|
||||
{
|
||||
GSList *group = gtk_radio_menu_item_get_group (group_source);
|
||||
|
||||
if (group == NULL)
|
||||
{
|
||||
/* if the group source does not have a group, we force one */
|
||||
gtk_radio_menu_item_set_group (group_source, NULL);
|
||||
group = gtk_radio_menu_item_get_group (group_source);
|
||||
}
|
||||
|
||||
gtk_radio_menu_item_set_group (radio_menu_item, group);
|
||||
}
|
||||
else
|
||||
gtk_radio_menu_item_set_group (radio_menu_item, NULL);
|
||||
}
|
||||
|
||||
@@ -95,6 +95,10 @@ GDK_AVAILABLE_IN_ALL
|
||||
void gtk_radio_menu_item_set_group (GtkRadioMenuItem *radio_menu_item,
|
||||
GSList *group);
|
||||
|
||||
GDK_AVAILABLE_IN_3_18
|
||||
void gtk_radio_menu_item_join_group (GtkRadioMenuItem *radio_menu_item,
|
||||
GtkRadioMenuItem *group_source);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GTK_RADIO_MENU_ITEM_H__ */
|
||||
|
||||
+46
-52
@@ -1650,14 +1650,13 @@ gtk_range_realize (GtkWidget *widget)
|
||||
attributes.height = allocation.height;
|
||||
attributes.wclass = GDK_INPUT_ONLY;
|
||||
attributes.event_mask = gtk_widget_get_events (widget);
|
||||
attributes.event_mask |= (GDK_BUTTON_PRESS_MASK |
|
||||
GDK_BUTTON_RELEASE_MASK |
|
||||
GDK_SCROLL_MASK |
|
||||
GDK_SMOOTH_SCROLL_MASK |
|
||||
GDK_ENTER_NOTIFY_MASK |
|
||||
GDK_LEAVE_NOTIFY_MASK |
|
||||
GDK_POINTER_MOTION_MASK |
|
||||
GDK_POINTER_MOTION_HINT_MASK);
|
||||
attributes.event_mask |= GDK_BUTTON_PRESS_MASK |
|
||||
GDK_BUTTON_RELEASE_MASK |
|
||||
GDK_SCROLL_MASK |
|
||||
GDK_SMOOTH_SCROLL_MASK |
|
||||
GDK_ENTER_NOTIFY_MASK |
|
||||
GDK_LEAVE_NOTIFY_MASK |
|
||||
GDK_POINTER_MOTION_MASK;
|
||||
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y;
|
||||
|
||||
@@ -2038,8 +2037,6 @@ gtk_range_draw (GtkWidget *widget,
|
||||
}
|
||||
else
|
||||
{
|
||||
gboolean is_rtl = gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL;
|
||||
|
||||
gint trough_change_pos_x = width;
|
||||
gint trough_change_pos_y = height;
|
||||
|
||||
@@ -2054,15 +2051,13 @@ gtk_range_draw (GtkWidget *widget,
|
||||
|
||||
gtk_style_context_save (context);
|
||||
if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
|
||||
{
|
||||
gtk_style_context_add_class (context, GTK_STYLE_CLASS_LEFT);
|
||||
|
||||
if (!is_rtl)
|
||||
gtk_style_context_add_class (context, GTK_STYLE_CLASS_HIGHLIGHT);
|
||||
}
|
||||
gtk_style_context_add_class (context, GTK_STYLE_CLASS_LEFT);
|
||||
else
|
||||
gtk_style_context_add_class (context, GTK_STYLE_CLASS_TOP);
|
||||
|
||||
if (!should_invert (range))
|
||||
gtk_style_context_add_class (context, GTK_STYLE_CLASS_HIGHLIGHT);
|
||||
|
||||
gtk_render_background (context, cr, x, y,
|
||||
trough_change_pos_x,
|
||||
trough_change_pos_y);
|
||||
@@ -2080,17 +2075,12 @@ gtk_range_draw (GtkWidget *widget,
|
||||
|
||||
gtk_style_context_save (context);
|
||||
if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
|
||||
{
|
||||
gtk_style_context_add_class (context, GTK_STYLE_CLASS_RIGHT);
|
||||
|
||||
if (is_rtl)
|
||||
gtk_style_context_add_class (context, GTK_STYLE_CLASS_HIGHLIGHT);
|
||||
}
|
||||
gtk_style_context_add_class (context, GTK_STYLE_CLASS_RIGHT);
|
||||
else
|
||||
{
|
||||
gtk_style_context_add_class (context, GTK_STYLE_CLASS_BOTTOM);
|
||||
gtk_style_context_add_class (context, GTK_STYLE_CLASS_HIGHLIGHT);
|
||||
}
|
||||
gtk_style_context_add_class (context, GTK_STYLE_CLASS_BOTTOM);
|
||||
|
||||
if (should_invert (range))
|
||||
gtk_style_context_add_class (context, GTK_STYLE_CLASS_HIGHLIGHT);
|
||||
|
||||
gtk_render_background (context, cr,
|
||||
x + trough_change_pos_x, y + trough_change_pos_y,
|
||||
@@ -2112,11 +2102,12 @@ gtk_range_draw (GtkWidget *widget,
|
||||
gtk_adjustment_get_upper (priv->adjustment) - gtk_adjustment_get_page_size (priv->adjustment) -
|
||||
gtk_adjustment_get_lower (priv->adjustment) != 0)
|
||||
{
|
||||
gdouble fill_level = priv->fill_level;
|
||||
gint fill_x = x;
|
||||
gint fill_y = y;
|
||||
gint fill_width = width;
|
||||
gint fill_height = height;
|
||||
gdouble fill_level = priv->fill_level;
|
||||
gint fill_x = x;
|
||||
gint fill_y = y;
|
||||
gint fill_width = width;
|
||||
gint fill_height = height;
|
||||
gdouble fill_proportion = 0.0;
|
||||
|
||||
gtk_style_context_save (context);
|
||||
gtk_style_context_add_class (context, GTK_STYLE_CLASS_PROGRESSBAR);
|
||||
@@ -2125,33 +2116,36 @@ gtk_range_draw (GtkWidget *widget,
|
||||
gtk_adjustment_get_upper (priv->adjustment) -
|
||||
gtk_adjustment_get_page_size (priv->adjustment));
|
||||
|
||||
if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
|
||||
{
|
||||
fill_x = priv->trough.x;
|
||||
fill_width = (priv->slider.width +
|
||||
(fill_level - gtk_adjustment_get_lower (priv->adjustment)) /
|
||||
fill_proportion = (fill_level - gtk_adjustment_get_lower (priv->adjustment)) /
|
||||
(gtk_adjustment_get_upper (priv->adjustment) -
|
||||
gtk_adjustment_get_lower (priv->adjustment) -
|
||||
gtk_adjustment_get_page_size (priv->adjustment)) *
|
||||
(priv->trough.width -
|
||||
priv->slider.width));
|
||||
gtk_adjustment_get_page_size (priv->adjustment));
|
||||
|
||||
if (should_invert (range))
|
||||
fill_x += priv->trough.width - fill_width;
|
||||
if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
|
||||
{
|
||||
if (!should_invert (range))
|
||||
{
|
||||
fill_x = priv->slider.x + (priv->slider.width / 2);
|
||||
fill_width = (width * fill_proportion) - fill_x + x;
|
||||
}
|
||||
else
|
||||
{
|
||||
fill_x = x + width * (1.0 - fill_proportion);
|
||||
fill_width = priv->slider.x + (priv->slider.width / 2) - fill_x;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fill_y = priv->trough.y;
|
||||
fill_height = (priv->slider.height +
|
||||
(fill_level - gtk_adjustment_get_lower (priv->adjustment)) /
|
||||
(gtk_adjustment_get_upper (priv->adjustment) -
|
||||
gtk_adjustment_get_lower (priv->adjustment) -
|
||||
gtk_adjustment_get_page_size (priv->adjustment)) *
|
||||
(priv->trough.height -
|
||||
priv->slider.height));
|
||||
|
||||
if (should_invert (range))
|
||||
fill_y += priv->trough.height - fill_height;
|
||||
if (!should_invert (range))
|
||||
{
|
||||
fill_y = priv->slider.y + (priv->slider.height / 2);
|
||||
fill_height = (height * fill_proportion) - fill_y + y;
|
||||
}
|
||||
else
|
||||
{
|
||||
fill_y = y + height * (1.0 - fill_proportion);
|
||||
fill_height = priv->slider.y + (priv->slider.height / 2) - fill_y;
|
||||
}
|
||||
}
|
||||
|
||||
gtk_render_background (context, cr, fill_x, fill_y, fill_width, fill_height);
|
||||
|
||||
+1
-1
@@ -1189,7 +1189,7 @@ gtk_render_icon_pixbuf (GtkStyleContext *context,
|
||||
GtkIconSize size)
|
||||
{
|
||||
g_return_val_if_fail (GTK_IS_STYLE_CONTEXT (context), NULL);
|
||||
g_return_val_if_fail (size > GTK_ICON_SIZE_INVALID || size == -1, NULL);
|
||||
g_return_val_if_fail (size > GTK_ICON_SIZE_INVALID || size == (GtkIconSize)-1, NULL);
|
||||
g_return_val_if_fail (source != NULL, NULL);
|
||||
|
||||
return gtk_do_render_icon_pixbuf (context, source, size);
|
||||
|
||||
+1
-1
@@ -626,7 +626,7 @@ _gtk_rounded_box_contains_rectangle (const GtkRoundedBox *box,
|
||||
if (x1 < box->box.x ||
|
||||
y1 < box->box.y ||
|
||||
x2 >= box->box.x + box->box.width ||
|
||||
y2 >= box->box.y + box->box.width)
|
||||
y2 >= box->box.y + box->box.height)
|
||||
return FALSE;
|
||||
|
||||
if (x1 < box->box.x + box->corner[GTK_CSS_TOP_LEFT].horizontal &&
|
||||
|
||||
+81
-55
@@ -167,8 +167,7 @@ typedef struct
|
||||
{
|
||||
GtkWidget *scrollbar;
|
||||
GdkWindow *window;
|
||||
gboolean dragging;
|
||||
gboolean over;
|
||||
gboolean over; /* either mouse over, or while dragging */
|
||||
gint64 last_scroll_time;
|
||||
guint conceil_timer;
|
||||
|
||||
@@ -978,51 +977,77 @@ indicator_set_over (Indicator *indicator,
|
||||
gtk_widget_queue_resize (indicator->scrollbar);
|
||||
}
|
||||
|
||||
static void
|
||||
translate_to_widget (GtkWidget *widget,
|
||||
GdkEvent *event,
|
||||
gint *x,
|
||||
gint *y)
|
||||
{
|
||||
GtkWidget *event_widget;
|
||||
GdkWindow *event_widget_window;
|
||||
GdkWindow *window;
|
||||
gdouble event_x, event_y;
|
||||
gint wx, wy;
|
||||
GtkAllocation allocation;
|
||||
|
||||
event_widget = gtk_get_event_widget (event);
|
||||
event_widget_window = gtk_widget_get_window (event_widget);
|
||||
gdk_event_get_coords (event, &event_x, &event_y);
|
||||
window = event->any.window;
|
||||
while (window && window != event_widget_window)
|
||||
{
|
||||
gdk_window_get_position (window, &wx, &wy);
|
||||
event_x += wx;
|
||||
event_y += wy;
|
||||
window = gdk_window_get_effective_parent (window);
|
||||
}
|
||||
|
||||
if (!gtk_widget_get_has_window (event_widget))
|
||||
{
|
||||
gtk_widget_get_allocation (event_widget, &allocation);
|
||||
event_x -= allocation.x;
|
||||
event_y -= allocation.y;
|
||||
}
|
||||
|
||||
gtk_widget_translate_coordinates (event_widget, widget,
|
||||
(gint)event_x, (gint)event_y,
|
||||
x, y);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
event_close_to_indicator (GtkScrolledWindow *sw,
|
||||
Indicator *indicator,
|
||||
GdkEvent *event)
|
||||
{
|
||||
GtkAllocation alloc, indicator_alloc;
|
||||
GtkScrolledWindowPrivate *priv;
|
||||
GtkWidget *event_widget;
|
||||
gint win_x, win_y;
|
||||
gdouble x, y;
|
||||
GtkAllocation indicator_alloc;
|
||||
gint x, y;
|
||||
gint distance;
|
||||
gint win_x, win_y;
|
||||
|
||||
priv = sw->priv;
|
||||
event_widget = gtk_get_event_widget (event);
|
||||
gdk_event_get_coords (event, &x, &y);
|
||||
|
||||
gtk_widget_get_allocation (GTK_WIDGET (sw), &alloc);
|
||||
gtk_widget_get_allocation (indicator->scrollbar, &indicator_alloc);
|
||||
gdk_window_get_position (indicator->window, &win_x, &win_y);
|
||||
|
||||
if (event->any.window == indicator->window ||
|
||||
event_widget == indicator->scrollbar)
|
||||
{
|
||||
gint xcoord = x, ycoord = y;
|
||||
|
||||
gtk_widget_translate_coordinates (indicator->scrollbar,
|
||||
GTK_WIDGET (sw),
|
||||
xcoord, ycoord,
|
||||
&xcoord, &ycoord);
|
||||
x = xcoord;
|
||||
y = ycoord;
|
||||
}
|
||||
translate_to_widget (GTK_WIDGET (sw), event, &x, &y);
|
||||
|
||||
if (indicator->over)
|
||||
distance = INDICATOR_FAR_DISTANCE;
|
||||
else
|
||||
distance = INDICATOR_CLOSE_DISTANCE;
|
||||
|
||||
if ((indicator == &priv->hindicator &&
|
||||
y >= win_y - distance &&
|
||||
y < win_y + indicator_alloc.height + distance) ||
|
||||
(indicator == &priv->vindicator &&
|
||||
x >= win_x - distance &&
|
||||
x < win_x + indicator_alloc.width + distance))
|
||||
return TRUE;
|
||||
if (indicator == &priv->hindicator)
|
||||
{
|
||||
if (y >= win_y - distance &&
|
||||
y < win_y + indicator_alloc.height + distance)
|
||||
return TRUE;
|
||||
}
|
||||
else if (indicator == &priv->vindicator)
|
||||
{
|
||||
if (x >= win_x - distance &&
|
||||
x < win_x + indicator_alloc.width + distance)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -1067,13 +1092,26 @@ captured_event_cb (GtkWidget *widget,
|
||||
GtkScrolledWindow *sw;
|
||||
GdkInputSource input_source;
|
||||
GdkDevice *source_device;
|
||||
GtkWidget *event_widget;
|
||||
gboolean on_scrollbar;
|
||||
|
||||
sw = GTK_SCROLLED_WINDOW (widget);
|
||||
priv = sw->priv;
|
||||
|
||||
if (event->type == GDK_SCROLL)
|
||||
{
|
||||
gtk_scrolled_window_cancel_deceleration (sw);
|
||||
gdouble dx, dy;
|
||||
|
||||
/* The libinput driver may generate a final event with dx=dy=0
|
||||
* after scrolling finished, this is usually an indication that
|
||||
* the deceleration animation just started, so we definitely
|
||||
* shouldn't cancel it.
|
||||
*/
|
||||
if (event->scroll.direction != GDK_SCROLL_SMOOTH ||
|
||||
(gdk_event_get_scroll_deltas (event, &dx, &dy) &&
|
||||
((int) dx != 0 || (int) dy != 0)))
|
||||
gtk_scrolled_window_cancel_deceleration (sw);
|
||||
|
||||
return GDK_EVENT_PROPAGATE;
|
||||
}
|
||||
|
||||
@@ -1091,6 +1129,10 @@ captured_event_cb (GtkWidget *widget,
|
||||
input_source != GDK_SOURCE_TOUCHPAD)
|
||||
return GDK_EVENT_PROPAGATE;
|
||||
|
||||
event_widget = gtk_get_event_widget (event);
|
||||
on_scrollbar = (event_widget == priv->hindicator.scrollbar ||
|
||||
event_widget == priv->vindicator.scrollbar);
|
||||
|
||||
if (event->type == GDK_MOTION_NOTIFY)
|
||||
{
|
||||
if (priv->hscrollbar_visible)
|
||||
@@ -1098,13 +1140,15 @@ captured_event_cb (GtkWidget *widget,
|
||||
if (priv->vscrollbar_visible)
|
||||
indicator_start_fade (&priv->vindicator, 1.0);
|
||||
|
||||
if ((event->motion.state &
|
||||
(GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON3_MASK)) != 0)
|
||||
if (!on_scrollbar &&
|
||||
(event->motion.state &
|
||||
(GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON3_MASK)) != 0)
|
||||
{
|
||||
indicator_set_over (&priv->hindicator, FALSE);
|
||||
indicator_set_over (&priv->vindicator, FALSE);
|
||||
}
|
||||
else if (strstr (gdk_device_get_name (source_device), "TrackPoint"))
|
||||
else if (strstr (gdk_device_get_name (source_device), "TrackPoint") ||
|
||||
strstr (gdk_device_get_name (source_device), "DualPoint Stick"))
|
||||
{
|
||||
indicator_set_over (&priv->hindicator, TRUE);
|
||||
indicator_set_over (&priv->vindicator, TRUE);
|
||||
@@ -1117,16 +1161,12 @@ captured_event_cb (GtkWidget *widget,
|
||||
indicator_set_over (&priv->hindicator, FALSE);
|
||||
}
|
||||
}
|
||||
else if (event->type == GDK_LEAVE_NOTIFY &&
|
||||
else if (event->type == GDK_LEAVE_NOTIFY && on_scrollbar &&
|
||||
event->crossing.mode == GDK_CROSSING_UNGRAB)
|
||||
{
|
||||
GtkWidget *scrollbar;
|
||||
|
||||
scrollbar = gtk_get_event_widget (event);
|
||||
|
||||
if (scrollbar == priv->hindicator.scrollbar)
|
||||
if (event_widget == priv->hindicator.scrollbar)
|
||||
check_update_scrollbar_proximity (sw, &priv->hindicator, event);
|
||||
else if (scrollbar == priv->vindicator.scrollbar)
|
||||
else if (event_widget == priv->vindicator.scrollbar)
|
||||
check_update_scrollbar_proximity (sw, &priv->vindicator, event);
|
||||
}
|
||||
|
||||
@@ -3897,7 +3937,7 @@ maybe_hide_indicator (gpointer data)
|
||||
Indicator *indicator = data;
|
||||
|
||||
if (g_get_monotonic_time () - indicator->last_scroll_time >= INDICATOR_FADE_OUT_DELAY * 1000 &&
|
||||
!indicator->over && !indicator->dragging)
|
||||
!indicator->over)
|
||||
indicator_start_fade (indicator, 0.0);
|
||||
|
||||
return G_SOURCE_CONTINUE;
|
||||
@@ -3911,16 +3951,6 @@ indicator_value_changed (GtkAdjustment *adjustment,
|
||||
indicator_start_fade (indicator, 1.0);
|
||||
}
|
||||
|
||||
static void
|
||||
indicator_style_changed (GtkStyleContext *context,
|
||||
Indicator *indicator)
|
||||
{
|
||||
if (gtk_style_context_has_class (context, "dragging"))
|
||||
indicator->dragging = TRUE;
|
||||
else
|
||||
indicator->dragging = FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
setup_indicator (GtkScrolledWindow *scrolled_window,
|
||||
Indicator *indicator,
|
||||
@@ -3944,8 +3974,6 @@ setup_indicator (GtkScrolledWindow *scrolled_window,
|
||||
g_object_unref (scrollbar);
|
||||
|
||||
gtk_style_context_add_class (context, "overlay-indicator");
|
||||
g_signal_connect (context, "changed",
|
||||
G_CALLBACK (indicator_style_changed), indicator);
|
||||
g_signal_connect (adjustment, "value-changed",
|
||||
G_CALLBACK (indicator_value_changed), indicator);
|
||||
|
||||
@@ -3972,7 +4000,6 @@ remove_indicator (GtkScrolledWindow *scrolled_window,
|
||||
adjustment = gtk_range_get_adjustment (GTK_RANGE (scrollbar));
|
||||
|
||||
gtk_style_context_remove_class (context, "overlay-indicator");
|
||||
g_signal_handlers_disconnect_by_func (context, indicator_style_changed, indicator);
|
||||
g_signal_handlers_disconnect_by_func (adjustment, indicator_value_changed, indicator);
|
||||
if (indicator->conceil_timer)
|
||||
{
|
||||
@@ -4103,7 +4130,6 @@ indicator_reset (Indicator *indicator)
|
||||
}
|
||||
|
||||
indicator->scrollbar = NULL;
|
||||
indicator->dragging = FALSE;
|
||||
indicator->over = FALSE;
|
||||
indicator->current_pos = indicator->source_pos = indicator->target_pos = 0;
|
||||
indicator->start_time = indicator->end_time = indicator->last_scroll_time = 0;
|
||||
|
||||
+34
-30
@@ -344,18 +344,15 @@ gtk_search_bar_get_property (GObject *object,
|
||||
}
|
||||
}
|
||||
|
||||
static void gtk_search_bar_set_entry (GtkSearchBar *bar,
|
||||
GtkEntry *entry);
|
||||
|
||||
static void
|
||||
gtk_search_bar_dispose (GObject *object)
|
||||
{
|
||||
GtkSearchBar *bar = GTK_SEARCH_BAR (object);
|
||||
GtkSearchBarPrivate *priv = gtk_search_bar_get_instance_private (bar);
|
||||
|
||||
if (priv->entry)
|
||||
{
|
||||
g_signal_handlers_disconnect_by_func (priv->entry, entry_key_pressed_event_cb, bar);
|
||||
g_object_remove_weak_pointer (G_OBJECT (priv->entry), (gpointer *) &priv->entry);
|
||||
priv->entry = NULL;
|
||||
}
|
||||
gtk_search_bar_set_entry (bar, NULL);
|
||||
|
||||
G_OBJECT_CLASS (gtk_search_bar_parent_class)->dispose (object);
|
||||
}
|
||||
@@ -471,6 +468,35 @@ gtk_search_bar_new (void)
|
||||
return g_object_new (GTK_TYPE_SEARCH_BAR, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_search_bar_set_entry (GtkSearchBar *bar,
|
||||
GtkEntry *entry)
|
||||
{
|
||||
GtkSearchBarPrivate *priv = gtk_search_bar_get_instance_private (bar);
|
||||
|
||||
if (priv->entry != NULL)
|
||||
{
|
||||
if (GTK_IS_SEARCH_ENTRY (priv->entry))
|
||||
g_signal_handlers_disconnect_by_func (priv->entry, stop_search_cb, bar);
|
||||
else
|
||||
g_signal_handlers_disconnect_by_func (priv->entry, entry_key_pressed_event_cb, bar);
|
||||
g_object_remove_weak_pointer (G_OBJECT (priv->entry), (gpointer *) &priv->entry);
|
||||
}
|
||||
|
||||
priv->entry = GTK_WIDGET (entry);
|
||||
|
||||
if (priv->entry != NULL)
|
||||
{
|
||||
g_object_add_weak_pointer (G_OBJECT (priv->entry), (gpointer *) &priv->entry);
|
||||
if (GTK_IS_SEARCH_ENTRY (priv->entry))
|
||||
g_signal_connect (priv->entry, "stop-search",
|
||||
G_CALLBACK (stop_search_cb), bar);
|
||||
else
|
||||
g_signal_connect (priv->entry, "key-press-event",
|
||||
G_CALLBACK (entry_key_pressed_event_cb), bar);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_search_bar_connect_entry:
|
||||
* @bar: a #GtkSearchBar
|
||||
@@ -487,32 +513,10 @@ void
|
||||
gtk_search_bar_connect_entry (GtkSearchBar *bar,
|
||||
GtkEntry *entry)
|
||||
{
|
||||
GtkSearchBarPrivate *priv = gtk_search_bar_get_instance_private (bar);
|
||||
|
||||
g_return_if_fail (GTK_IS_SEARCH_BAR (bar));
|
||||
g_return_if_fail (entry == NULL || GTK_IS_ENTRY (entry));
|
||||
|
||||
if (priv->entry != NULL)
|
||||
{
|
||||
if (GTK_IS_SEARCH_ENTRY (priv->entry))
|
||||
g_signal_handlers_disconnect_by_func (priv->entry, stop_search_cb, bar);
|
||||
else
|
||||
g_signal_handlers_disconnect_by_func (priv->entry, entry_key_pressed_event_cb, bar);
|
||||
g_object_remove_weak_pointer (G_OBJECT (priv->entry), (gpointer *) &priv->entry);
|
||||
priv->entry = NULL;
|
||||
}
|
||||
|
||||
if (entry != NULL)
|
||||
{
|
||||
priv->entry = GTK_WIDGET (entry);
|
||||
g_object_add_weak_pointer (G_OBJECT (priv->entry), (gpointer *) &priv->entry);
|
||||
if (GTK_IS_SEARCH_ENTRY (priv->entry))
|
||||
g_signal_connect (priv->entry, "stop-search",
|
||||
G_CALLBACK (stop_search_cb), bar);
|
||||
else
|
||||
g_signal_connect (priv->entry, "key-press-event",
|
||||
G_CALLBACK (entry_key_pressed_event_cb), bar);
|
||||
}
|
||||
gtk_search_bar_set_entry (bar, entry);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -1093,7 +1093,7 @@ gtk_spin_button_realize (GtkWidget *widget)
|
||||
attributes.event_mask = gtk_widget_get_events (widget);
|
||||
attributes.event_mask |= GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK
|
||||
| GDK_BUTTON_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_ENTER_NOTIFY_MASK
|
||||
| GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK;
|
||||
| GDK_POINTER_MOTION_MASK;
|
||||
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
|
||||
|
||||
|
||||
@@ -487,7 +487,6 @@ gtk_switch_realize (GtkWidget *widget)
|
||||
attributes.event_mask |= (GDK_BUTTON_PRESS_MASK |
|
||||
GDK_BUTTON_RELEASE_MASK |
|
||||
GDK_BUTTON1_MOTION_MASK |
|
||||
GDK_POINTER_MOTION_HINT_MASK |
|
||||
GDK_POINTER_MOTION_MASK |
|
||||
GDK_ENTER_NOTIFY_MASK |
|
||||
GDK_LEAVE_NOTIFY_MASK);
|
||||
|
||||
+14
-18
@@ -3626,40 +3626,36 @@ static void
|
||||
update_selection_clipboards (GtkTextBuffer *buffer)
|
||||
{
|
||||
GtkTextBufferPrivate *priv;
|
||||
GSList *tmp_list = buffer->priv->selection_clipboards;
|
||||
gboolean has_selection;
|
||||
GtkTextIter start;
|
||||
GtkTextIter end;
|
||||
GSList *tmp_list;
|
||||
|
||||
priv = buffer->priv;
|
||||
|
||||
gtk_text_buffer_get_copy_target_list (buffer);
|
||||
has_selection = gtk_text_buffer_get_selection_bounds (buffer, &start, &end);
|
||||
tmp_list = buffer->priv->selection_clipboards;
|
||||
|
||||
while (tmp_list)
|
||||
{
|
||||
GtkTextIter start;
|
||||
GtkTextIter end;
|
||||
|
||||
SelectionClipboard *selection_clipboard = tmp_list->data;
|
||||
GtkClipboard *clipboard = selection_clipboard->clipboard;
|
||||
|
||||
/* Determine whether we have a selection and adjust X selection
|
||||
* accordingly.
|
||||
*/
|
||||
if (!gtk_text_buffer_get_selection_bounds (buffer, &start, &end))
|
||||
{
|
||||
if (gtk_clipboard_get_owner (clipboard) == G_OBJECT (buffer))
|
||||
gtk_clipboard_clear (clipboard);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Even if we already have the selection, we need to update our
|
||||
* timestamp.
|
||||
*/
|
||||
if (has_selection)
|
||||
{
|
||||
/* Even if we already have the selection, we need to update our
|
||||
* timestamp.
|
||||
*/
|
||||
gtk_clipboard_set_with_owner (clipboard,
|
||||
priv->copy_target_entries,
|
||||
priv->n_copy_target_entries,
|
||||
clipboard_get_selection_cb,
|
||||
clipboard_clear_selection_cb,
|
||||
G_OBJECT (buffer));
|
||||
}
|
||||
}
|
||||
else if (gtk_clipboard_get_owner (clipboard) == G_OBJECT (buffer))
|
||||
gtk_clipboard_clear (clipboard);
|
||||
|
||||
tmp_list = tmp_list->next;
|
||||
}
|
||||
|
||||
+6
-6
@@ -534,7 +534,7 @@ gtk_text_tag_class_init (GtkTextTagClass *klass)
|
||||
* color may be applied instead of the foreground. Setting this property
|
||||
* will always override those defaults.
|
||||
*
|
||||
* Since: 3.18
|
||||
* Since: 3.16
|
||||
*/
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_UNDERLINE_RGBA,
|
||||
@@ -550,13 +550,13 @@ gtk_text_tag_class_init (GtkTextTagClass *klass)
|
||||
* This property modifies the color of strikeouts. If not set, strikeouts
|
||||
* will use the forground color.
|
||||
*
|
||||
* Since: 3.18
|
||||
* Since: 3.16
|
||||
*/
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_STRIKETHROUGH_RGBA,
|
||||
g_param_spec_boxed ("strikethrough-rgba",
|
||||
P_("Strike-through RGBA"),
|
||||
P_("Color of strike-through for this text"),
|
||||
P_("Strikethrough RGBA"),
|
||||
P_("Color of strikethrough for this text"),
|
||||
GDK_TYPE_RGBA,
|
||||
GTK_PARAM_READWRITE));
|
||||
|
||||
@@ -792,7 +792,7 @@ gtk_text_tag_class_init (GtkTextTagClass *klass)
|
||||
*
|
||||
* If the #GtkTextTag:underline-rgba property has been set.
|
||||
*
|
||||
* Since: 3.18
|
||||
* Since: 3.16
|
||||
*/
|
||||
ADD_SET_PROP ("underline-rgba-set", PROP_UNDERLINE_RGBA_SET,
|
||||
P_("Underline RGBA set"),
|
||||
@@ -803,7 +803,7 @@ gtk_text_tag_class_init (GtkTextTagClass *klass)
|
||||
*
|
||||
* If the #GtkTextTag:strikethrough-rgba property has been set.
|
||||
*
|
||||
* Since: 3.18
|
||||
* Since: 3.16
|
||||
*/
|
||||
ADD_SET_PROP ("strikethrough-rgba-set", PROP_STRIKETHROUGH_RGBA_SET,
|
||||
P_("Strikethrough RGBA set"),
|
||||
|
||||
+10
-11
@@ -5992,7 +5992,7 @@ gtk_text_view_move_cursor (GtkTextView *text_view,
|
||||
gtk_text_view_move_viewport (text_view, scroll_step, count);
|
||||
if ((old_xpos == gtk_adjustment_get_target_value (priv->hadjustment) &&
|
||||
old_ypos == gtk_adjustment_get_target_value (priv->vadjustment)) &&
|
||||
leave_direction != -1 &&
|
||||
leave_direction != (GtkDirectionType)-1 &&
|
||||
!gtk_widget_keynav_failed (GTK_WIDGET (text_view),
|
||||
leave_direction))
|
||||
{
|
||||
@@ -6165,7 +6165,7 @@ gtk_text_view_move_cursor (GtkTextView *text_view,
|
||||
if (step == GTK_MOVEMENT_DISPLAY_LINES)
|
||||
gtk_text_view_set_virtual_cursor_pos (text_view, cursor_x_pos, -1);
|
||||
}
|
||||
else if (leave_direction != -1)
|
||||
else if (leave_direction != (GtkDirectionType)-1)
|
||||
{
|
||||
if (!gtk_widget_keynav_failed (GTK_WIDGET (text_view),
|
||||
leave_direction))
|
||||
@@ -9421,15 +9421,14 @@ text_window_realize (GtkTextWindow *win,
|
||||
attributes.y = 0;
|
||||
attributes.width = win->allocation.width;
|
||||
attributes.height = win->allocation.height;
|
||||
attributes.event_mask = (GDK_EXPOSURE_MASK |
|
||||
GDK_SCROLL_MASK |
|
||||
GDK_SMOOTH_SCROLL_MASK |
|
||||
GDK_KEY_PRESS_MASK |
|
||||
GDK_BUTTON_PRESS_MASK |
|
||||
GDK_BUTTON_RELEASE_MASK |
|
||||
GDK_POINTER_MOTION_MASK |
|
||||
GDK_POINTER_MOTION_HINT_MASK |
|
||||
gtk_widget_get_events (win->widget));
|
||||
attributes.event_mask = gtk_widget_get_events (win->widget)
|
||||
| GDK_EXPOSURE_MASK
|
||||
| GDK_SCROLL_MASK
|
||||
| GDK_SMOOTH_SCROLL_MASK
|
||||
| GDK_KEY_PRESS_MASK
|
||||
| GDK_BUTTON_PRESS_MASK
|
||||
| GDK_BUTTON_RELEASE_MASK
|
||||
| GDK_POINTER_MOTION_MASK;
|
||||
|
||||
win->bin_window = gdk_window_new (win->window,
|
||||
&attributes,
|
||||
|
||||
+1
-1
@@ -904,7 +904,7 @@ gtk_tooltip_set_last_window (GtkTooltip *tooltip,
|
||||
|
||||
tooltip->last_window = window;
|
||||
|
||||
if (window)
|
||||
if (tooltip->last_window)
|
||||
g_object_add_weak_pointer (G_OBJECT (tooltip->last_window),
|
||||
(gpointer *) &tooltip->last_window);
|
||||
|
||||
|
||||
@@ -2124,6 +2124,7 @@ gtk_tree_view_destroy (GtkWidget *widget)
|
||||
GList *list;
|
||||
|
||||
gtk_tree_view_stop_editing (tree_view, TRUE);
|
||||
gtk_tree_view_stop_rubber_band (tree_view);
|
||||
|
||||
if (tree_view->priv->columns != NULL)
|
||||
{
|
||||
|
||||
@@ -1360,7 +1360,6 @@ _gtk_tree_view_column_realize_button (GtkTreeViewColumn *column)
|
||||
(GDK_BUTTON_PRESS_MASK |
|
||||
GDK_BUTTON_RELEASE_MASK |
|
||||
GDK_POINTER_MOTION_MASK |
|
||||
GDK_POINTER_MOTION_HINT_MASK |
|
||||
GDK_KEY_PRESS_MASK);
|
||||
attributes_mask = GDK_WA_CURSOR | GDK_WA_X | GDK_WA_Y;
|
||||
attr.cursor = gdk_cursor_new_for_display
|
||||
|
||||
+7
-5
@@ -15260,14 +15260,12 @@ gtk_widget_real_set_has_tooltip (GtkWidget *widget,
|
||||
gdk_window_set_events (priv->window,
|
||||
gdk_window_get_events (priv->window) |
|
||||
GDK_LEAVE_NOTIFY_MASK |
|
||||
GDK_POINTER_MOTION_MASK |
|
||||
GDK_POINTER_MOTION_HINT_MASK);
|
||||
GDK_POINTER_MOTION_MASK);
|
||||
|
||||
if (gtk_widget_get_has_window (widget))
|
||||
gtk_widget_add_events (widget,
|
||||
GDK_LEAVE_NOTIFY_MASK |
|
||||
GDK_POINTER_MOTION_MASK |
|
||||
GDK_POINTER_MOTION_HINT_MASK);
|
||||
GDK_POINTER_MOTION_MASK);
|
||||
}
|
||||
|
||||
g_object_set_qdata (G_OBJECT (widget), quark_has_tooltip,
|
||||
@@ -16402,14 +16400,18 @@ gtk_widget_get_path (GtkWidget *widget)
|
||||
}
|
||||
|
||||
void
|
||||
_gtk_widget_style_context_invalidated (GtkWidget *widget)
|
||||
gtk_widget_clear_path (GtkWidget *widget)
|
||||
{
|
||||
if (widget->priv->path)
|
||||
{
|
||||
gtk_widget_path_free (widget->priv->path);
|
||||
widget->priv->path = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
_gtk_widget_style_context_invalidated (GtkWidget *widget)
|
||||
{
|
||||
if (gtk_widget_get_realized (widget))
|
||||
g_signal_emit (widget, widget_signals[STYLE_UPDATED], 0);
|
||||
else
|
||||
|
||||
+2
-2
@@ -497,8 +497,8 @@ gtk_widget_path_iter_get_siblings (const GtkWidgetPath *path,
|
||||
{
|
||||
GtkPathElement *elem;
|
||||
|
||||
g_return_val_if_fail (path != NULL, G_TYPE_INVALID);
|
||||
g_return_val_if_fail (path->elems->len != 0, G_TYPE_INVALID);
|
||||
g_return_val_if_fail (path != NULL, NULL);
|
||||
g_return_val_if_fail (path->elems->len != 0, NULL);
|
||||
|
||||
if (pos < 0 || pos >= path->elems->len)
|
||||
pos = path->elems->len - 1;
|
||||
|
||||
@@ -148,6 +148,7 @@ gboolean _gtk_widget_captured_event (GtkWidget *widget,
|
||||
GdkEvent *event);
|
||||
|
||||
GtkWidgetPath * _gtk_widget_create_path (GtkWidget *widget);
|
||||
void gtk_widget_clear_path (GtkWidget *widget);
|
||||
void _gtk_widget_invalidate_style_context (GtkWidget *widget,
|
||||
GtkCssChange change);
|
||||
void _gtk_widget_style_context_invalidated (GtkWidget *widget);
|
||||
|
||||
+48
-40
@@ -227,8 +227,7 @@ struct _GtkWindowPrivate
|
||||
guint gravity : 5; /* GdkGravity */
|
||||
guint csd_requested : 1;
|
||||
guint client_decorated : 1; /* Decorations drawn client-side */
|
||||
guint custom_title : 1; /* app-provided titlebar if CSD can't
|
||||
* be enabled */
|
||||
guint use_client_shadow : 1; /* Decorations use client-side shadows */
|
||||
guint maximized : 1;
|
||||
guint fullscreen : 1;
|
||||
guint tiled : 1;
|
||||
@@ -3947,7 +3946,7 @@ unset_titlebar (GtkWindow *window)
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gtk_window_supports_csd (GtkWindow *window)
|
||||
gtk_window_supports_client_shadow (GtkWindow *window)
|
||||
{
|
||||
GtkWidget *widget = GTK_WIDGET (window);
|
||||
|
||||
@@ -3997,13 +3996,21 @@ gtk_window_enable_csd (GtkWindow *window)
|
||||
GtkWidget *widget = GTK_WIDGET (window);
|
||||
GdkVisual *visual;
|
||||
|
||||
/* We need a visual with alpha */
|
||||
visual = gdk_screen_get_rgba_visual (gtk_widget_get_screen (widget));
|
||||
g_assert (visual != NULL);
|
||||
gtk_widget_set_visual (widget, visual);
|
||||
/* We need a visual with alpha for client shadows */
|
||||
if (priv->use_client_shadow)
|
||||
{
|
||||
visual = gdk_screen_get_rgba_visual (gtk_widget_get_screen (widget));
|
||||
if (visual != NULL)
|
||||
gtk_widget_set_visual (widget, visual);
|
||||
|
||||
gtk_style_context_add_class (gtk_widget_get_style_context (widget), GTK_STYLE_CLASS_CSD);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_style_context_add_class (gtk_widget_get_style_context (widget), "solid-csd");
|
||||
}
|
||||
|
||||
priv->client_decorated = TRUE;
|
||||
gtk_style_context_add_class (gtk_widget_get_style_context (widget), GTK_STYLE_CLASS_CSD);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -4038,7 +4045,6 @@ gtk_window_set_titlebar (GtkWindow *window,
|
||||
{
|
||||
GtkWidget *widget = GTK_WIDGET (window);
|
||||
GtkWindowPrivate *priv = window->priv;
|
||||
GdkVisual *visual;
|
||||
gboolean was_mapped;
|
||||
|
||||
g_return_if_fail (GTK_IS_WINDOW (window));
|
||||
@@ -4059,18 +4065,15 @@ gtk_window_set_titlebar (GtkWindow *window,
|
||||
|
||||
if (titlebar == NULL)
|
||||
{
|
||||
priv->custom_title = FALSE;
|
||||
priv->client_decorated = FALSE;
|
||||
gtk_style_context_remove_class (gtk_widget_get_style_context (widget), GTK_STYLE_CLASS_CSD);
|
||||
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (gtk_window_supports_csd (window))
|
||||
gtk_window_enable_csd (window);
|
||||
else
|
||||
priv->custom_title = TRUE;
|
||||
priv->use_client_shadow = gtk_window_supports_client_shadow (window);
|
||||
|
||||
gtk_window_enable_csd (window);
|
||||
priv->title_box = titlebar;
|
||||
gtk_widget_set_parent (priv->title_box, widget);
|
||||
if (GTK_IS_HEADER_BAR (titlebar))
|
||||
@@ -4080,10 +4083,6 @@ gtk_window_set_titlebar (GtkWindow *window,
|
||||
on_titlebar_title_notify (GTK_HEADER_BAR (titlebar), NULL, window);
|
||||
}
|
||||
|
||||
visual = gdk_screen_get_rgba_visual (gtk_widget_get_screen (widget));
|
||||
if (visual)
|
||||
gtk_widget_set_visual (widget, visual);
|
||||
|
||||
gtk_style_context_add_class (gtk_widget_get_style_context (titlebar),
|
||||
GTK_STYLE_CLASS_TITLEBAR);
|
||||
|
||||
@@ -4171,8 +4170,6 @@ gtk_window_set_decorated (GtkWindow *window,
|
||||
{
|
||||
if (priv->client_decorated)
|
||||
gdk_window_set_decorations (gdk_window, 0);
|
||||
else if (priv->custom_title)
|
||||
gdk_window_set_decorations (gdk_window, GDK_DECOR_BORDER);
|
||||
else
|
||||
gdk_window_set_decorations (gdk_window, GDK_DECOR_ALL);
|
||||
}
|
||||
@@ -5809,7 +5806,8 @@ create_decoration (GtkWidget *widget)
|
||||
GtkWindow *window = GTK_WINDOW (widget);
|
||||
GtkWindowPrivate *priv = window->priv;
|
||||
|
||||
if (!gtk_window_supports_csd (window))
|
||||
priv->use_client_shadow = gtk_window_supports_client_shadow (window);
|
||||
if (!priv->use_client_shadow)
|
||||
return;
|
||||
|
||||
gtk_window_enable_csd (window);
|
||||
@@ -6626,7 +6624,7 @@ update_border_windows (GtkWindow *window)
|
||||
border.right + handle, border.top + handle);
|
||||
gdk_window_move_resize (priv->border_window[GDK_WINDOW_EDGE_SOUTH_WEST],
|
||||
window_border.left - border.left, window_border.top + height - handle,
|
||||
window_border.left + handle, border.bottom + handle);
|
||||
border.left + handle, border.bottom + handle);
|
||||
gdk_window_move_resize (priv->border_window[GDK_WINDOW_EDGE_SOUTH_EAST],
|
||||
window_border.left + width - handle, window_border.top + height - handle,
|
||||
border.right + handle, border.bottom + handle);
|
||||
@@ -6892,7 +6890,7 @@ update_realized_window_properties (GtkWindow *window,
|
||||
{
|
||||
GtkWindowPrivate *priv = window->priv;
|
||||
|
||||
if (priv->client_decorated)
|
||||
if (priv->client_decorated && priv->use_client_shadow)
|
||||
update_shadow_width (window, window_border);
|
||||
|
||||
update_opaque_region (window, window_border, child_allocation);
|
||||
@@ -7035,8 +7033,7 @@ gtk_window_realize (GtkWidget *widget)
|
||||
GDK_FOCUS_CHANGE_MASK |
|
||||
GDK_STRUCTURE_MASK);
|
||||
|
||||
if (priv->decorated &&
|
||||
(priv->client_decorated || priv->custom_title))
|
||||
if (priv->decorated && priv->client_decorated)
|
||||
attributes.event_mask |= GDK_POINTER_MOTION_MASK;
|
||||
|
||||
attributes.type_hint = priv->type_hint;
|
||||
@@ -7111,8 +7108,6 @@ gtk_window_realize (GtkWidget *widget)
|
||||
|
||||
if (!priv->decorated || priv->client_decorated)
|
||||
gdk_window_set_decorations (gdk_window, 0);
|
||||
else if (priv->custom_title)
|
||||
gdk_window_set_decorations (gdk_window, GDK_DECOR_BORDER);
|
||||
|
||||
if (!priv->deletable)
|
||||
gdk_window_set_functions (gdk_window, GDK_FUNC_ALL | GDK_FUNC_CLOSE);
|
||||
@@ -9689,18 +9684,31 @@ gtk_window_draw (GtkWidget *widget,
|
||||
|
||||
add_window_frame_style_class (context);
|
||||
|
||||
gtk_render_background (context, cr,
|
||||
window_border.left, window_border.top,
|
||||
allocation.width -
|
||||
(window_border.left + window_border.right),
|
||||
allocation.height -
|
||||
(window_border.top + window_border.bottom));
|
||||
gtk_render_frame (context, cr,
|
||||
window_border.left, window_border.top,
|
||||
allocation.width -
|
||||
(window_border.left + window_border.right),
|
||||
allocation.height -
|
||||
(window_border.top + window_border.bottom));
|
||||
if (priv->use_client_shadow)
|
||||
{
|
||||
gtk_render_background (context, cr,
|
||||
window_border.left, window_border.top,
|
||||
allocation.width -
|
||||
(window_border.left + window_border.right),
|
||||
allocation.height -
|
||||
(window_border.top + window_border.bottom));
|
||||
gtk_render_frame (context, cr,
|
||||
window_border.left, window_border.top,
|
||||
allocation.width -
|
||||
(window_border.left + window_border.right),
|
||||
allocation.height -
|
||||
(window_border.top + window_border.bottom));
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_render_background (context, cr, 0, 0,
|
||||
allocation.width,
|
||||
allocation.height);
|
||||
|
||||
gtk_render_frame (context, cr, 0, 0,
|
||||
allocation.width,
|
||||
allocation.height);
|
||||
}
|
||||
|
||||
gtk_style_context_restore (context);
|
||||
}
|
||||
@@ -10466,7 +10474,7 @@ gtk_window_set_screen (GtkWindow *window,
|
||||
}
|
||||
g_object_notify (G_OBJECT (window), "screen");
|
||||
|
||||
if (was_rgba)
|
||||
if (was_rgba && priv->use_client_shadow)
|
||||
{
|
||||
GdkVisual *visual;
|
||||
|
||||
|
||||
@@ -354,7 +354,7 @@ update_info (gpointer data)
|
||||
frame = gdk_frame_clock_get_frame_counter (clock);
|
||||
frame_time = gdk_frame_clock_get_frame_time (clock);
|
||||
|
||||
tmp = g_strdup_printf ("%ld", frame);
|
||||
tmp = g_strdup_printf ("%"G_GINT64_FORMAT, frame);
|
||||
gtk_label_set_label (GTK_LABEL (sl->priv->framecount), tmp);
|
||||
g_free (tmp);
|
||||
|
||||
|
||||
@@ -46,7 +46,6 @@ $backdrop_bg_color: $bg_color;
|
||||
$backdrop_fg_color: mix($fg_color, $backdrop_bg_color, 50%);
|
||||
$backdrop_insensitive_color: if($variant == 'light', darken($backdrop_bg_color, 15%), lighten($backdrop_bg_color, 15%));
|
||||
$backdrop_selected_fg_color: $selected_fg_color;
|
||||
$backdrop_selected_bg_color: desaturate($selected_bg_color,100%);
|
||||
$backdrop_borders_color: mix($borders_color, $bg_color, 90%);
|
||||
$backdrop_dark_fill: mix($backdrop_borders_color, $backdrop_bg_color, 35%);
|
||||
$backdrop_sidebar_bg_color: lighten($backdrop_bg_color,5%);
|
||||
|
||||
@@ -308,7 +308,7 @@ GtkTextView { // This will get overridden by .view, needed by gedit line numbers
|
||||
@extend %linked_vertical;
|
||||
&:focus {
|
||||
border-color: entry_focus_border($selected_bg_color);
|
||||
box-shadow: entry_focus_glow($selected_bg_color),
|
||||
box-shadow: entry_focus_shadow($selected_bg_color),
|
||||
0 -1px 0 0 entry_focus_border($selected_bg_color);
|
||||
@extend %linked_vertical;
|
||||
}
|
||||
@@ -353,7 +353,7 @@ GtkTextView { // This will get overridden by .view, needed by gedit line numbers
|
||||
box-shadow: _widget_edge();
|
||||
&:focus {
|
||||
border-color: entry_focus_border($selected_bg_color);
|
||||
box-shadow: entry_focus_glow($selected_bg_color),
|
||||
box-shadow: entry_focus_shadow($selected_bg_color),
|
||||
0 -1px 0 0 entry_focus_border($selected_bg_color),
|
||||
_widget_edge();
|
||||
@extend %linked_vertical:last-child;
|
||||
@@ -3227,6 +3227,13 @@ GtkVolumeButton.button { padding: 8px; }
|
||||
0 0 0 1px transparentize($_wm_border,0.1);
|
||||
}
|
||||
}
|
||||
&.solid-csd {
|
||||
border-radius: 0;
|
||||
margin: 4px;
|
||||
background-color: $backdrop_bg_color;
|
||||
border: solid 1px $backdrop_borders_color;
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
// Window Close button
|
||||
@@ -3254,10 +3261,7 @@ GtkVolumeButton.button { padding: 8px; }
|
||||
@if $variant == 'light' {
|
||||
outline-color: transparentize($selected_fg_color, 0.7);
|
||||
}
|
||||
&:backdrop {
|
||||
color: $backdrop_selected_fg_color;
|
||||
background-color: $backdrop_selected_bg_color;
|
||||
}
|
||||
&:backdrop { color: $backdrop_selected_fg_color; }
|
||||
}
|
||||
|
||||
/* Decouple the font of context menus from their entry/textview */
|
||||
|
||||
@@ -24,10 +24,8 @@
|
||||
@else { @return if($fc==$selected_bg_color, $selected_borders_color, darken($fc,35%)); }
|
||||
}
|
||||
|
||||
@function entry_focus_glow($fc) {
|
||||
$_focus_glow_color: if($variant=='light', transparentize($fc,0.85),
|
||||
transparentize($fc,0.3));
|
||||
@return inset 0 0 0 1px $_focus_glow_color;
|
||||
@function entry_focus_shadow($fc) {
|
||||
@return inset 0 0 0 1px $fc;
|
||||
}
|
||||
|
||||
@function entry_gradient($c) {
|
||||
@@ -63,13 +61,13 @@
|
||||
color: $text_color;
|
||||
border-color: $borders_color;
|
||||
@include _shadows($_inner_shadows,
|
||||
entry_focus_glow(transparentize($fc,1)),
|
||||
entry_focus_shadow(transparentize($fc,1)),
|
||||
$_entry_edge);
|
||||
// the second transparent shadow is needed for the transition to work
|
||||
}
|
||||
@if $t==focus {
|
||||
@include _shadows($_inner_shadows,
|
||||
entry_focus_glow($fc),
|
||||
entry_focus_shadow($fc),
|
||||
$_entry_edge);
|
||||
border-color: entry_focus_border($fc);
|
||||
}
|
||||
@@ -106,7 +104,7 @@
|
||||
border-color: $selected_bg_color;
|
||||
background-image: linear-gradient(to bottom, transparentize(opacify($osd_borders_color, 1), 0.5));
|
||||
background-clip: padding-box;
|
||||
box-shadow: entry_focus_glow($selected_bg_color);
|
||||
box-shadow: entry_focus_shadow($selected_bg_color);
|
||||
text-shadow: 0 1px black;
|
||||
icon-shadow: 0 1px black;
|
||||
}
|
||||
|
||||
@@ -178,7 +178,7 @@ GtkTextView {
|
||||
.entry:focus {
|
||||
background-color: transparent;
|
||||
background-image: linear-gradient(to bottom, #212121, #292929 90%);
|
||||
box-shadow: inset 0 3px rgba(0, 0, 0, 0.02), inset 0 2px rgba(0, 0, 0, 0.03), inset 0 1px rgba(0, 0, 0, 0.08), inset 0 0 0 1px rgba(33, 93, 156, 0.7), 0 1px rgba(238, 238, 236, 0.1);
|
||||
box-shadow: inset 0 3px rgba(0, 0, 0, 0.02), inset 0 2px rgba(0, 0, 0, 0.03), inset 0 1px rgba(0, 0, 0, 0.08), inset 0 0 0 1px #215d9c, 0 1px rgba(238, 238, 236, 0.1);
|
||||
border-color: #0f2b48; }
|
||||
.entry:insensitive {
|
||||
background-color: transparent;
|
||||
@@ -231,7 +231,7 @@ GtkTextView {
|
||||
.entry.error:focus {
|
||||
background-color: transparent;
|
||||
background-image: linear-gradient(to bottom, #212121, #292929 90%);
|
||||
box-shadow: inset 0 3px rgba(0, 0, 0, 0.02), inset 0 2px rgba(0, 0, 0, 0.03), inset 0 1px rgba(0, 0, 0, 0.08), inset 0 0 0 1px rgba(204, 0, 0, 0.7), 0 1px rgba(238, 238, 236, 0.1);
|
||||
box-shadow: inset 0 3px rgba(0, 0, 0, 0.02), inset 0 2px rgba(0, 0, 0, 0.03), inset 0 1px rgba(0, 0, 0, 0.08), inset 0 0 0 1px #cc0000, 0 1px rgba(238, 238, 236, 0.1);
|
||||
border-color: #1a0000; }
|
||||
.entry.error:selected, .entry.error:selected:focus {
|
||||
background-color: #cc0000; }
|
||||
@@ -241,7 +241,7 @@ GtkTextView {
|
||||
.entry.warning:focus {
|
||||
background-color: transparent;
|
||||
background-image: linear-gradient(to bottom, #212121, #292929 90%);
|
||||
box-shadow: inset 0 3px rgba(0, 0, 0, 0.02), inset 0 2px rgba(0, 0, 0, 0.03), inset 0 1px rgba(0, 0, 0, 0.08), inset 0 0 0 1px rgba(245, 121, 0, 0.7), 0 1px rgba(238, 238, 236, 0.1);
|
||||
box-shadow: inset 0 3px rgba(0, 0, 0, 0.02), inset 0 2px rgba(0, 0, 0, 0.03), inset 0 1px rgba(0, 0, 0, 0.08), inset 0 0 0 1px #f57900, 0 1px rgba(238, 238, 236, 0.1);
|
||||
border-color: #432100; }
|
||||
.entry.warning:selected, .entry.warning:selected:focus {
|
||||
background-color: #f57900; }
|
||||
@@ -264,7 +264,7 @@ GtkTextView {
|
||||
box-shadow: none; }
|
||||
.linked.vertical > .entry:focus {
|
||||
border-color: #0f2b48;
|
||||
box-shadow: inset 0 0 0 1px rgba(33, 93, 156, 0.7), 0 -1px 0 0 #0f2b48; }
|
||||
box-shadow: inset 0 0 0 1px #215d9c, 0 -1px 0 0 #0f2b48; }
|
||||
.linked.vertical > .entry:insensitive {
|
||||
background-color: transparent;
|
||||
background-image: linear-gradient(to bottom, #212121, #292929 90%);
|
||||
@@ -299,7 +299,7 @@ GtkTextView {
|
||||
.linked.vertical > .entry:first-child:focus {
|
||||
background-color: transparent;
|
||||
background-image: linear-gradient(to bottom, #212121, #292929 90%);
|
||||
box-shadow: inset 0 3px rgba(0, 0, 0, 0.02), inset 0 2px rgba(0, 0, 0, 0.03), inset 0 1px rgba(0, 0, 0, 0.08), inset 0 0 0 1px rgba(33, 93, 156, 0.7);
|
||||
box-shadow: inset 0 3px rgba(0, 0, 0, 0.02), inset 0 2px rgba(0, 0, 0, 0.03), inset 0 1px rgba(0, 0, 0, 0.08), inset 0 0 0 1px #215d9c;
|
||||
border-color: #0f2b48; }
|
||||
.linked.vertical > .entry:first-child:insensitive {
|
||||
background-color: transparent;
|
||||
@@ -336,7 +336,7 @@ GtkTextView {
|
||||
box-shadow: 0 1px rgba(238, 238, 236, 0.1); }
|
||||
.linked.vertical > .entry:last-child:focus {
|
||||
border-color: #0f2b48;
|
||||
box-shadow: inset 0 0 0 1px rgba(33, 93, 156, 0.7), 0 -1px 0 0 #0f2b48, 0 1px rgba(238, 238, 236, 0.1); }
|
||||
box-shadow: inset 0 0 0 1px #215d9c, 0 -1px 0 0 #0f2b48, 0 1px rgba(238, 238, 236, 0.1); }
|
||||
.linked.vertical > .entry:last-child:insensitive {
|
||||
background-color: transparent;
|
||||
background-image: linear-gradient(to bottom, #212121, #292929 90%);
|
||||
@@ -375,7 +375,7 @@ GtkTextView {
|
||||
border-color: #215d9c;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5));
|
||||
background-clip: padding-box;
|
||||
box-shadow: inset 0 0 0 1px rgba(33, 93, 156, 0.7);
|
||||
box-shadow: inset 0 0 0 1px #215d9c;
|
||||
text-shadow: 0 1px black;
|
||||
icon-shadow: 0 1px black; }
|
||||
.osd .entry:backdrop {
|
||||
@@ -482,7 +482,8 @@ GtkTextView {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0); }
|
||||
.button:backdrop:insensitive > .label, .button.flat:backdrop:insensitive > .label, .header-bar .titlebutton.button:backdrop:insensitive > .label,
|
||||
.button:backdrop:insensitive > .label, .header-bar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.titlebar .button.titlebutton:backdrop:insensitive > .label, .button.flat:backdrop:insensitive > .label, .header-bar .titlebutton.button:backdrop:insensitive > .label,
|
||||
.titlebar .titlebutton.button:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.button:backdrop:insensitive:active, .button:backdrop:insensitive:checked, .button.flat:backdrop:insensitive:active, .header-bar .titlebutton.button:backdrop:insensitive:active,
|
||||
@@ -492,7 +493,9 @@ GtkTextView {
|
||||
border-color: #1e2222;
|
||||
background-image: linear-gradient(to bottom, #262929);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0); }
|
||||
.button:backdrop:insensitive:active > .label, .button:backdrop:insensitive:checked > .label, .button.flat:backdrop:insensitive:active > .label, .header-bar .titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.button:backdrop:insensitive:active > .label, .header-bar .button.titlebutton:backdrop:insensitive:active > .label,
|
||||
.titlebar .button.titlebutton:backdrop:insensitive:active > .label, .button:backdrop:insensitive:checked > .label, .header-bar .button.titlebutton:backdrop:insensitive:checked > .label,
|
||||
.titlebar .button.titlebutton:backdrop:insensitive:checked > .label, .button.flat:backdrop:insensitive:active > .label, .header-bar .titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.titlebar .titlebutton.button:backdrop:insensitive:active > .label, .button.flat:backdrop:insensitive:checked > .label, .header-bar .titlebutton.button:backdrop:insensitive:checked > .label,
|
||||
.titlebar .titlebutton.button:backdrop:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
@@ -514,14 +517,17 @@ GtkTextView {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0.1); }
|
||||
.button:insensitive > .label {
|
||||
.button:insensitive > .label, .header-bar .button.titlebutton:insensitive > .label,
|
||||
.titlebar .button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.button:insensitive:active, .button:insensitive:checked {
|
||||
color: #939695;
|
||||
border-color: #1c1f1f;
|
||||
background-image: linear-gradient(to bottom, #2f3333, #323636);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0.1); }
|
||||
.button:insensitive:active > .label, .button:insensitive:checked > .label {
|
||||
.button:insensitive:active > .label, .header-bar .button.titlebutton:insensitive:active > .label,
|
||||
.titlebar .button.titlebutton:insensitive:active > .label, .button:insensitive:checked > .label, .header-bar .button.titlebutton:insensitive:checked > .label,
|
||||
.titlebar .button.titlebutton:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
.button.osd, .header-bar .osd.button.titlebutton,
|
||||
.titlebar .osd.button.titlebutton {
|
||||
@@ -763,7 +769,8 @@ GtkTextView {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0); }
|
||||
.button.suggested-action:backdrop:insensitive > .label, .button.suggested-action.flat:backdrop:insensitive > .label, .header-bar .suggested-action.titlebutton.button:backdrop:insensitive > .label,
|
||||
.button.suggested-action:backdrop:insensitive > .label, .header-bar .suggested-action.button.titlebutton:backdrop:insensitive > .label,
|
||||
.titlebar .suggested-action.button.titlebutton:backdrop:insensitive > .label, .button.suggested-action.flat:backdrop:insensitive > .label, .header-bar .suggested-action.titlebutton.button:backdrop:insensitive > .label,
|
||||
.titlebar .suggested-action.titlebutton.button:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.button.suggested-action:backdrop:insensitive:active, .button.suggested-action:backdrop:insensitive:checked, .button.suggested-action.flat:backdrop:insensitive:active, .header-bar .suggested-action.titlebutton.button:backdrop:insensitive:active,
|
||||
@@ -773,7 +780,9 @@ GtkTextView {
|
||||
border-color: #0b1e33;
|
||||
background-image: linear-gradient(to bottom, #1d4876);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0); }
|
||||
.button.suggested-action:backdrop:insensitive:active > .label, .button.suggested-action:backdrop:insensitive:checked > .label, .button.suggested-action.flat:backdrop:insensitive:active > .label, .header-bar .suggested-action.titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.button.suggested-action:backdrop:insensitive:active > .label, .header-bar .suggested-action.button.titlebutton:backdrop:insensitive:active > .label,
|
||||
.titlebar .suggested-action.button.titlebutton:backdrop:insensitive:active > .label, .button.suggested-action:backdrop:insensitive:checked > .label, .header-bar .suggested-action.button.titlebutton:backdrop:insensitive:checked > .label,
|
||||
.titlebar .suggested-action.button.titlebutton:backdrop:insensitive:checked > .label, .button.suggested-action.flat:backdrop:insensitive:active > .label, .header-bar .suggested-action.titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.titlebar .suggested-action.titlebutton.button:backdrop:insensitive:active > .label, .button.suggested-action.flat:backdrop:insensitive:checked > .label, .header-bar .suggested-action.titlebutton.button:backdrop:insensitive:checked > .label,
|
||||
.titlebar .suggested-action.titlebutton.button:backdrop:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
@@ -795,14 +804,17 @@ GtkTextView {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0.1); }
|
||||
.button.suggested-action:insensitive > .label {
|
||||
.button.suggested-action:insensitive > .label, .header-bar .suggested-action.button.titlebutton:insensitive > .label,
|
||||
.titlebar .suggested-action.button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.button.suggested-action:insensitive:active, .button.suggested-action:insensitive:checked {
|
||||
color: #a4b5c8;
|
||||
border-color: #0b1e33;
|
||||
background-image: linear-gradient(to bottom, #1b436f, #1d4876);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0.1); }
|
||||
.button.suggested-action:insensitive:active > .label, .button.suggested-action:insensitive:checked > .label {
|
||||
.button.suggested-action:insensitive:active > .label, .header-bar .suggested-action.button.titlebutton:insensitive:active > .label,
|
||||
.titlebar .suggested-action.button.titlebutton:insensitive:active > .label, .button.suggested-action:insensitive:checked > .label, .header-bar .suggested-action.button.titlebutton:insensitive:checked > .label,
|
||||
.titlebar .suggested-action.button.titlebutton:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
.osd .button.suggested-action {
|
||||
color: #eeeeec;
|
||||
@@ -904,7 +916,8 @@ GtkTextView {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0); }
|
||||
.button.destructive-action:backdrop:insensitive > .label, .button.destructive-action.flat:backdrop:insensitive > .label, .header-bar .destructive-action.titlebutton.button:backdrop:insensitive > .label,
|
||||
.button.destructive-action:backdrop:insensitive > .label, .header-bar .destructive-action.button.titlebutton:backdrop:insensitive > .label,
|
||||
.titlebar .destructive-action.button.titlebutton:backdrop:insensitive > .label, .button.destructive-action.flat:backdrop:insensitive > .label, .header-bar .destructive-action.titlebutton.button:backdrop:insensitive > .label,
|
||||
.titlebar .destructive-action.titlebutton.button:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.button.destructive-action:backdrop:insensitive:active, .button.destructive-action:backdrop:insensitive:checked, .button.destructive-action.flat:backdrop:insensitive:active, .header-bar .destructive-action.titlebutton.button:backdrop:insensitive:active,
|
||||
@@ -914,7 +927,9 @@ GtkTextView {
|
||||
border-color: #5e0707;
|
||||
background-image: linear-gradient(to bottom, #a41111);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0); }
|
||||
.button.destructive-action:backdrop:insensitive:active > .label, .button.destructive-action:backdrop:insensitive:checked > .label, .button.destructive-action.flat:backdrop:insensitive:active > .label, .header-bar .destructive-action.titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.button.destructive-action:backdrop:insensitive:active > .label, .header-bar .destructive-action.button.titlebutton:backdrop:insensitive:active > .label,
|
||||
.titlebar .destructive-action.button.titlebutton:backdrop:insensitive:active > .label, .button.destructive-action:backdrop:insensitive:checked > .label, .header-bar .destructive-action.button.titlebutton:backdrop:insensitive:checked > .label,
|
||||
.titlebar .destructive-action.button.titlebutton:backdrop:insensitive:checked > .label, .button.destructive-action.flat:backdrop:insensitive:active > .label, .header-bar .destructive-action.titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.titlebar .destructive-action.titlebutton.button:backdrop:insensitive:active > .label, .button.destructive-action.flat:backdrop:insensitive:checked > .label, .header-bar .destructive-action.titlebutton.button:backdrop:insensitive:checked > .label,
|
||||
.titlebar .destructive-action.titlebutton.button:backdrop:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
@@ -936,14 +951,17 @@ GtkTextView {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0.1); }
|
||||
.button.destructive-action:insensitive > .label {
|
||||
.button.destructive-action:insensitive > .label, .header-bar .destructive-action.button.titlebutton:insensitive > .label,
|
||||
.titlebar .destructive-action.button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.button.destructive-action:insensitive:active, .button.destructive-action:insensitive:checked {
|
||||
color: #da9f9f;
|
||||
border-color: #5e0707;
|
||||
background-image: linear-gradient(to bottom, #9d1010, #a41111);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0.1); }
|
||||
.button.destructive-action:insensitive:active > .label, .button.destructive-action:insensitive:checked > .label {
|
||||
.button.destructive-action:insensitive:active > .label, .header-bar .destructive-action.button.titlebutton:insensitive:active > .label,
|
||||
.titlebar .destructive-action.button.titlebutton:insensitive:active > .label, .button.destructive-action:insensitive:checked > .label, .header-bar .destructive-action.button.titlebutton:insensitive:checked > .label,
|
||||
.titlebar .destructive-action.button.titlebutton:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
.osd .button.destructive-action {
|
||||
color: #eeeeec;
|
||||
@@ -1016,7 +1034,8 @@ GtkTextView {
|
||||
padding-right: 6px;
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px; }
|
||||
.stack-switcher > .button.text-button {
|
||||
.stack-switcher > .button.text-button, .header-bar .stack-switcher > .text-button.button.titlebutton,
|
||||
.titlebar .stack-switcher > .text-button.button.titlebutton {
|
||||
padding: 5px 10px 6px; }
|
||||
.stack-switcher > .button.image-button, .header-bar .stack-switcher > .titlebutton.button,
|
||||
.titlebar .stack-switcher > .titlebutton.button {
|
||||
@@ -1055,7 +1074,8 @@ GtkTextView {
|
||||
text-shadow: 0 -1px rgba(0, 0, 0, 0.81176);
|
||||
icon-shadow: 0 -1px rgba(0, 0, 0, 0.81176);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0.1), 0 1px rgba(238, 238, 236, 0.1); }
|
||||
.inline-toolbar GtkToolButton > .button:hover {
|
||||
.inline-toolbar GtkToolButton > .button:hover, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:hover,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:hover {
|
||||
color: #eeeeec;
|
||||
outline-color: rgba(238, 238, 236, 0.3);
|
||||
border-color: #1c1f1f;
|
||||
@@ -1063,7 +1083,9 @@ GtkTextView {
|
||||
text-shadow: 0 -1px rgba(0, 0, 0, 0.77976);
|
||||
icon-shadow: 0 -1px rgba(0, 0, 0, 0.77976);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0.1), 0 1px rgba(238, 238, 236, 0.1); }
|
||||
.inline-toolbar GtkToolButton > .button:active, .inline-toolbar GtkToolButton > .button:checked {
|
||||
.inline-toolbar GtkToolButton > .button:active, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:active,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:active, .inline-toolbar GtkToolButton > .button:checked, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:checked,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:checked {
|
||||
color: #eeeeec;
|
||||
outline-color: rgba(238, 238, 236, 0.3);
|
||||
border-color: #1c1f1f;
|
||||
@@ -1071,7 +1093,8 @@ GtkTextView {
|
||||
text-shadow: 0 -1px rgba(0, 0, 0, 0.89176);
|
||||
icon-shadow: 0 -1px rgba(0, 0, 0, 0.89176);
|
||||
box-shadow: inset 0 1px rgba(0, 0, 0, 0.07), inset 0 2px 1px -2px rgba(0, 0, 0, 0.6), 0 1px rgba(238, 238, 236, 0.1); }
|
||||
.inline-toolbar GtkToolButton > .button:insensitive {
|
||||
.inline-toolbar GtkToolButton > .button:insensitive, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:insensitive,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:insensitive {
|
||||
color: #939695;
|
||||
border-color: #1c1f1f;
|
||||
background-image: linear-gradient(to bottom, #323636);
|
||||
@@ -1080,26 +1103,32 @@ GtkTextView {
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0.1); }
|
||||
.inline-toolbar GtkToolButton > .button:insensitive > .label {
|
||||
color: inherit; }
|
||||
.inline-toolbar GtkToolButton > .button:insensitive:active, .inline-toolbar GtkToolButton > .button:insensitive:checked {
|
||||
.inline-toolbar GtkToolButton > .button:insensitive:active, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:insensitive:active,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:insensitive:active, .inline-toolbar GtkToolButton > .button:insensitive:checked, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:insensitive:checked,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:insensitive:checked {
|
||||
color: #939695;
|
||||
border-color: #1c1f1f;
|
||||
background-image: linear-gradient(to bottom, #2f3333, #323636);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0.1); }
|
||||
.inline-toolbar GtkToolButton > .button:insensitive:active > .label, .inline-toolbar GtkToolButton > .button:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
.inline-toolbar GtkToolButton > .button:backdrop {
|
||||
.inline-toolbar GtkToolButton > .button:backdrop, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:backdrop,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:backdrop {
|
||||
color: #939695;
|
||||
border-color: #1e2222;
|
||||
background-image: linear-gradient(to bottom, #393f3f);
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0); }
|
||||
.inline-toolbar GtkToolButton > .button:backdrop:active, .inline-toolbar GtkToolButton > .button:backdrop:checked {
|
||||
.inline-toolbar GtkToolButton > .button:backdrop:active, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:backdrop:active,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:backdrop:active, .inline-toolbar GtkToolButton > .button:backdrop:checked, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:backdrop:checked,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:backdrop:checked {
|
||||
color: #939695;
|
||||
border-color: #1e2222;
|
||||
background-image: linear-gradient(to bottom, #2f3434);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0); }
|
||||
.inline-toolbar GtkToolButton > .button:backdrop:insensitive {
|
||||
.inline-toolbar GtkToolButton > .button:backdrop:insensitive, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:backdrop:insensitive,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:backdrop:insensitive {
|
||||
color: #5d6767;
|
||||
border-color: #1e2222;
|
||||
background-image: linear-gradient(to bottom, #323636);
|
||||
@@ -1108,7 +1137,9 @@ GtkTextView {
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0); }
|
||||
.inline-toolbar GtkToolButton > .button:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.inline-toolbar GtkToolButton > .button:backdrop:insensitive:active, .inline-toolbar GtkToolButton > .button:backdrop:insensitive:checked {
|
||||
.inline-toolbar GtkToolButton > .button:backdrop:insensitive:active, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:backdrop:insensitive:active,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:backdrop:insensitive:active, .inline-toolbar GtkToolButton > .button:backdrop:insensitive:checked, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:backdrop:insensitive:checked,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:backdrop:insensitive:checked {
|
||||
color: #5d6767;
|
||||
border-color: #1e2222;
|
||||
background-image: linear-gradient(to bottom, #262929);
|
||||
@@ -1147,12 +1178,14 @@ GtkComboBox.combobox-entry .titlebar .button.titlebutton,
|
||||
.inline-toolbar .header-bar GtkToolButton:backdrop:dir(rtl) > .button.titlebutton,
|
||||
.header-bar .inline-toolbar GtkToolButton:backdrop:dir(rtl) > .button.titlebutton,
|
||||
.inline-toolbar .titlebar GtkToolButton:backdrop:dir(rtl) > .button.titlebutton,
|
||||
.titlebar .inline-toolbar GtkToolButton:backdrop:dir(rtl) > .button.titlebutton, .osd .button:dir(rtl):hover, .osd .button:dir(rtl):active, .osd .button:dir(rtl):checked, .osd .button:dir(rtl):insensitive, .osd .button:dir(rtl):backdrop, .osd .button.suggested-action:dir(rtl), .osd .button.destructive-action:dir(rtl), .inline-toolbar .button:dir(rtl), .linked > .button:dir(rtl), GtkComboBox.combobox-entry .entry:dir(rtl), GtkComboBox.combobox-entry .button:dir(rtl), .linked > GtkComboBox > .button:dir(rtl) {
|
||||
.titlebar .inline-toolbar GtkToolButton:backdrop:dir(rtl) > .button.titlebutton, .osd .button:dir(rtl):hover, .osd .button:dir(rtl):active, .osd .button:dir(rtl):checked, .osd .button:dir(rtl):insensitive, .osd .button:dir(rtl):backdrop, .osd .button.suggested-action:dir(rtl), .osd .button.destructive-action:dir(rtl), .inline-toolbar .button:dir(rtl), .linked > .button:dir(rtl), .header-bar .linked > .button.titlebutton:dir(rtl),
|
||||
.titlebar .linked > .button.titlebutton:dir(rtl), GtkComboBox.combobox-entry .entry:dir(rtl), GtkComboBox.combobox-entry .button:dir(rtl), .linked > GtkComboBox > .button:dir(rtl) {
|
||||
border-radius: 0;
|
||||
border-right-style: none;
|
||||
border-left-style: solid; }
|
||||
|
||||
.osd .button:first-child:hover, .osd .button:first-child:active, .osd .button:first-child:checked, .osd .button:first-child:insensitive, .osd .button:first-child:backdrop, .osd .button.suggested-action:first-child, .osd .button.destructive-action:first-child, .inline-toolbar .button:first-child, .linked > .button:first-child, .inline-toolbar.toolbar GtkToolButton:first-child > .button.flat, .inline-toolbar GtkToolButton:first-child > .button.flat, .inline-toolbar.search-bar GtkToolButton:first-child > .button.flat, .inline-toolbar.location-bar GtkToolButton:first-child > .button.flat, .inline-toolbar .header-bar GtkToolButton:first-child > .button.titlebutton, .header-bar .inline-toolbar GtkToolButton:first-child > .button.titlebutton,
|
||||
.osd .button:first-child:hover, .osd .button:first-child:active, .osd .button:first-child:checked, .osd .button:first-child:insensitive, .osd .button:first-child:backdrop, .osd .button.suggested-action:first-child, .osd .button.destructive-action:first-child, .inline-toolbar .button:first-child, .linked > .button:first-child, .header-bar .linked > .button.titlebutton:first-child,
|
||||
.titlebar .linked > .button.titlebutton:first-child, .inline-toolbar.toolbar GtkToolButton:first-child > .button.flat, .inline-toolbar GtkToolButton:first-child > .button.flat, .inline-toolbar.search-bar GtkToolButton:first-child > .button.flat, .inline-toolbar.location-bar GtkToolButton:first-child > .button.flat, .inline-toolbar .header-bar GtkToolButton:first-child > .button.titlebutton, .header-bar .inline-toolbar GtkToolButton:first-child > .button.titlebutton,
|
||||
.inline-toolbar .titlebar GtkToolButton:first-child > .button.titlebutton,
|
||||
.titlebar .inline-toolbar GtkToolButton:first-child > .button.titlebutton,
|
||||
.inline-toolbar.toolbar GtkToolButton:backdrop:first-child > .button.flat,
|
||||
@@ -1165,7 +1198,8 @@ GtkComboBox.combobox-entry .titlebar .button.titlebutton,
|
||||
.titlebar .inline-toolbar GtkToolButton:backdrop:first-child > .button.titlebutton, GtkComboBox.combobox-entry .entry:first-child, GtkComboBox.combobox-entry .button:first-child, .linked > GtkComboBox:first-child > .button {
|
||||
border-radius: 3px 0 0 3px;
|
||||
border-left-style: solid; }
|
||||
.osd .button:last-child:hover, .osd .button:last-child:active, .osd .button:last-child:checked, .osd .button:last-child:insensitive, .osd .button:last-child:backdrop, .osd .button.suggested-action:last-child, .osd .button.destructive-action:last-child, .inline-toolbar .button:last-child, .linked > .button:last-child, .inline-toolbar.toolbar GtkToolButton:last-child > .button.flat, .inline-toolbar GtkToolButton:last-child > .button.flat, .inline-toolbar.search-bar GtkToolButton:last-child > .button.flat, .inline-toolbar.location-bar GtkToolButton:last-child > .button.flat, .inline-toolbar .header-bar GtkToolButton:last-child > .button.titlebutton, .header-bar .inline-toolbar GtkToolButton:last-child > .button.titlebutton,
|
||||
.osd .button:last-child:hover, .osd .button:last-child:active, .osd .button:last-child:checked, .osd .button:last-child:insensitive, .osd .button:last-child:backdrop, .osd .button.suggested-action:last-child, .osd .button.destructive-action:last-child, .inline-toolbar .button:last-child, .linked > .button:last-child, .header-bar .linked > .button.titlebutton:last-child,
|
||||
.titlebar .linked > .button.titlebutton:last-child, .inline-toolbar.toolbar GtkToolButton:last-child > .button.flat, .inline-toolbar GtkToolButton:last-child > .button.flat, .inline-toolbar.search-bar GtkToolButton:last-child > .button.flat, .inline-toolbar.location-bar GtkToolButton:last-child > .button.flat, .inline-toolbar .header-bar GtkToolButton:last-child > .button.titlebutton, .header-bar .inline-toolbar GtkToolButton:last-child > .button.titlebutton,
|
||||
.inline-toolbar .titlebar GtkToolButton:last-child > .button.titlebutton,
|
||||
.titlebar .inline-toolbar GtkToolButton:last-child > .button.titlebutton,
|
||||
.inline-toolbar.toolbar GtkToolButton:backdrop:last-child > .button.flat,
|
||||
@@ -1177,7 +1211,8 @@ GtkComboBox.combobox-entry .titlebar .button.titlebutton,
|
||||
.inline-toolbar .titlebar GtkToolButton:backdrop:last-child > .button.titlebutton,
|
||||
.titlebar .inline-toolbar GtkToolButton:backdrop:last-child > .button.titlebutton, GtkComboBox.combobox-entry .entry:last-child, GtkComboBox.combobox-entry .button:last-child, .linked > GtkComboBox:last-child > .button {
|
||||
border-radius: 0 3px 3px 0; }
|
||||
.osd .button:last-child:dir(rtl):hover, .osd .button:last-child:dir(rtl):active, .osd .button:last-child:dir(rtl):checked, .osd .button:last-child:dir(rtl):insensitive, .osd .button:last-child:dir(rtl):backdrop, .osd .button.suggested-action:last-child:dir(rtl), .osd .button.destructive-action:last-child:dir(rtl), .inline-toolbar .button:last-child:dir(rtl), .linked > .button:last-child:dir(rtl), .inline-toolbar GtkToolButton:last-child > .button.flat:dir(rtl), .inline-toolbar .header-bar GtkToolButton:last-child > .button.titlebutton:dir(rtl), .header-bar .inline-toolbar GtkToolButton:last-child > .button.titlebutton:dir(rtl),
|
||||
.osd .button:last-child:dir(rtl):hover, .osd .button:last-child:dir(rtl):active, .osd .button:last-child:dir(rtl):checked, .osd .button:last-child:dir(rtl):insensitive, .osd .button:last-child:dir(rtl):backdrop, .osd .button.suggested-action:last-child:dir(rtl), .osd .button.destructive-action:last-child:dir(rtl), .inline-toolbar .button:last-child:dir(rtl), .linked > .button:last-child:dir(rtl), .header-bar .linked > .button.titlebutton:last-child:dir(rtl),
|
||||
.titlebar .linked > .button.titlebutton:last-child:dir(rtl), .inline-toolbar GtkToolButton:last-child > .button.flat:dir(rtl), .inline-toolbar .header-bar GtkToolButton:last-child > .button.titlebutton:dir(rtl), .header-bar .inline-toolbar GtkToolButton:last-child > .button.titlebutton:dir(rtl),
|
||||
.inline-toolbar .titlebar GtkToolButton:last-child > .button.titlebutton:dir(rtl),
|
||||
.titlebar .inline-toolbar GtkToolButton:last-child > .button.titlebutton:dir(rtl),
|
||||
.inline-toolbar GtkToolButton:backdrop:last-child > .button.flat:dir(rtl), .inline-toolbar.toolbar GtkToolButton:last-child:dir(rtl) > .button.flat, .inline-toolbar GtkToolButton:last-child:dir(rtl) > .button.flat, .inline-toolbar.search-bar GtkToolButton:last-child:dir(rtl) > .button.flat, .inline-toolbar.location-bar GtkToolButton:last-child:dir(rtl) > .button.flat, .inline-toolbar .header-bar GtkToolButton:last-child:dir(rtl) > .button.titlebutton, .header-bar .inline-toolbar GtkToolButton:last-child:dir(rtl) > .button.titlebutton,
|
||||
@@ -1192,7 +1227,8 @@ GtkComboBox.combobox-entry .titlebar .button.titlebutton,
|
||||
.inline-toolbar .titlebar GtkToolButton:backdrop:last-child:dir(rtl) > .button.titlebutton,
|
||||
.titlebar .inline-toolbar GtkToolButton:backdrop:last-child:dir(rtl) > .button.titlebutton, GtkComboBox.combobox-entry .entry:last-child:dir(rtl), GtkComboBox.combobox-entry .button:last-child:dir(rtl), .linked > GtkComboBox:last-child > .button:dir(rtl) {
|
||||
border-right-style: solid; }
|
||||
.osd .button:only-child:hover, .osd .button:only-child:active, .osd .button:only-child:checked, .osd .button:only-child:insensitive, .osd .button:only-child:backdrop, .osd .button.suggested-action:only-child, .osd .button.destructive-action:only-child, .inline-toolbar .button:only-child, .linked > .button:only-child, .inline-toolbar.toolbar GtkToolButton:only-child > .button.flat, .inline-toolbar GtkToolButton:only-child > .button.flat, .inline-toolbar.search-bar GtkToolButton:only-child > .button.flat, .inline-toolbar.location-bar GtkToolButton:only-child > .button.flat, .inline-toolbar .header-bar GtkToolButton:only-child > .button.titlebutton, .header-bar .inline-toolbar GtkToolButton:only-child > .button.titlebutton,
|
||||
.osd .button:only-child:hover, .osd .button:only-child:active, .osd .button:only-child:checked, .osd .button:only-child:insensitive, .osd .button:only-child:backdrop, .osd .button.suggested-action:only-child, .osd .button.destructive-action:only-child, .inline-toolbar .button:only-child, .linked > .button:only-child, .header-bar .linked > .button.titlebutton:only-child,
|
||||
.titlebar .linked > .button.titlebutton:only-child, .inline-toolbar.toolbar GtkToolButton:only-child > .button.flat, .inline-toolbar GtkToolButton:only-child > .button.flat, .inline-toolbar.search-bar GtkToolButton:only-child > .button.flat, .inline-toolbar.location-bar GtkToolButton:only-child > .button.flat, .inline-toolbar .header-bar GtkToolButton:only-child > .button.titlebutton, .header-bar .inline-toolbar GtkToolButton:only-child > .button.titlebutton,
|
||||
.inline-toolbar .titlebar GtkToolButton:only-child > .button.titlebutton,
|
||||
.titlebar .inline-toolbar GtkToolButton:only-child > .button.titlebutton,
|
||||
.inline-toolbar.toolbar GtkToolButton:backdrop:only-child > .button.flat,
|
||||
@@ -1206,20 +1242,24 @@ GtkComboBox.combobox-entry .titlebar .button.titlebutton,
|
||||
border-radius: 3px;
|
||||
border-style: solid; }
|
||||
|
||||
.linked.vertical > .entry, .linked.vertical > .entry:focus, .linked.vertical > .entry:insensitive, .linked.vertical > .entry:insensitive:backdrop, .linked.vertical > .entry:backdrop, .linked.vertical > .button, .linked.vertical > .button:hover, .linked.vertical > .button:active, .linked.vertical > .button:checked, .linked.vertical > .button:backdrop, .linked.vertical > GtkComboBoxText > .button,
|
||||
.linked.vertical > .entry, .linked.vertical > .entry:focus, .linked.vertical > .entry:insensitive, .linked.vertical > .entry:insensitive:backdrop, .linked.vertical > .entry:backdrop, .linked.vertical > .button, .header-bar .linked.vertical > .button.titlebutton,
|
||||
.titlebar .linked.vertical > .button.titlebutton, .linked.vertical > .button:hover, .linked.vertical > .button:active, .linked.vertical > .button:checked, .linked.vertical > .button:backdrop, .linked.vertical > GtkComboBoxText > .button,
|
||||
.linked.vertical > GtkComboBox > .button {
|
||||
border-left-style: solid;
|
||||
border-top-style: none;
|
||||
border-radius: 0; }
|
||||
|
||||
.linked.vertical > .entry:first-child, .linked.vertical > .button:first-child, .linked.vertical > GtkComboBoxText:first-child > .button,
|
||||
.linked.vertical > .entry:first-child, .linked.vertical > .button:first-child, .header-bar .linked.vertical > .button.titlebutton:first-child,
|
||||
.titlebar .linked.vertical > .button.titlebutton:first-child, .linked.vertical > GtkComboBoxText:first-child > .button,
|
||||
.linked.vertical > GtkComboBox:first-child > .button {
|
||||
border-style: solid;
|
||||
border-radius: 3px 3px 0 0; }
|
||||
.linked.vertical > .entry:last-child, .linked.vertical > .button:last-child, .linked.vertical > GtkComboBoxText:last-child > .button,
|
||||
.linked.vertical > .entry:last-child, .linked.vertical > .button:last-child, .header-bar .linked.vertical > .button.titlebutton:last-child,
|
||||
.titlebar .linked.vertical > .button.titlebutton:last-child, .linked.vertical > GtkComboBoxText:last-child > .button,
|
||||
.linked.vertical > GtkComboBox:last-child > .button {
|
||||
border-radius: 0 0 3px 3px; }
|
||||
.linked.vertical > .entry:only-child, .linked.vertical > .button:only-child, .linked.vertical > GtkComboBoxText:only-child > .button,
|
||||
.linked.vertical > .entry:only-child, .linked.vertical > .button:only-child, .header-bar .linked.vertical > .button.titlebutton:only-child,
|
||||
.titlebar .linked.vertical > .button.titlebutton:only-child, .linked.vertical > GtkComboBoxText:only-child > .button,
|
||||
.linked.vertical > GtkComboBox:only-child > .button {
|
||||
border-radius: 3px;
|
||||
border-style: solid; }
|
||||
@@ -1430,7 +1470,9 @@ GtkColorButton.button, .header-bar GtkColorButton.button.titlebutton,
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.spinbutton.vertical .button:first-child:insensitive > .label, .spinbutton.vertical:dir(rtl) .button:first-child:insensitive > .label {
|
||||
.spinbutton.vertical .button:first-child:insensitive > .label, .spinbutton.vertical .header-bar .button.titlebutton:first-child:insensitive > .label,
|
||||
.spinbutton.vertical .titlebar .button.titlebutton:first-child:insensitive > .label, .spinbutton.vertical:dir(rtl) .button:first-child:insensitive > .label, .spinbutton.vertical:dir(rtl) .header-bar .button.titlebutton:first-child:insensitive > .label,
|
||||
.spinbutton.vertical:dir(rtl) .titlebar .button.titlebutton:first-child:insensitive > .label {
|
||||
color: inherit; }
|
||||
.spinbutton.vertical .button:first-child:backdrop, .spinbutton.vertical:dir(rtl) .button:first-child:backdrop {
|
||||
color: #939695;
|
||||
@@ -1470,7 +1512,9 @@ GtkColorButton.button, .header-bar GtkColorButton.button.titlebutton,
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0.1); }
|
||||
.spinbutton.vertical .button:last-child:insensitive > .label, .spinbutton.vertical:dir(rtl) .button:last-child:insensitive > .label {
|
||||
.spinbutton.vertical .button:last-child:insensitive > .label, .spinbutton.vertical .header-bar .button.titlebutton:last-child:insensitive > .label,
|
||||
.spinbutton.vertical .titlebar .button.titlebutton:last-child:insensitive > .label, .spinbutton.vertical:dir(rtl) .button:last-child:insensitive > .label, .spinbutton.vertical:dir(rtl) .header-bar .button.titlebutton:last-child:insensitive > .label,
|
||||
.spinbutton.vertical:dir(rtl) .titlebar .button.titlebutton:last-child:insensitive > .label {
|
||||
color: inherit; }
|
||||
.spinbutton.vertical .button:last-child:backdrop, .spinbutton.vertical:dir(rtl) .button:last-child:backdrop {
|
||||
color: #939695;
|
||||
@@ -1486,7 +1530,9 @@ GtkColorButton.button, .header-bar GtkColorButton.button.titlebutton,
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(238, 238, 236, 0); }
|
||||
.spinbutton.vertical .button:backdrop:insensitive > .label, .spinbutton.vertical:dir(rtl) .button:backdrop:insensitive > .label {
|
||||
.spinbutton.vertical .button:backdrop:insensitive > .label, .spinbutton.vertical .header-bar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.spinbutton.vertical .titlebar .button.titlebutton:backdrop:insensitive > .label, .spinbutton.vertical:dir(rtl) .button:backdrop:insensitive > .label, .spinbutton.vertical:dir(rtl) .header-bar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.spinbutton.vertical:dir(rtl) .titlebar .button.titlebutton:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.spinbutton.vertical.entry, .spinbutton.vertical:dir(rtl).entry {
|
||||
border-radius: 0;
|
||||
@@ -1693,11 +1739,13 @@ GtkComboBox {
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(43, 100, 160, 0);
|
||||
border-color: #0f2b48; }
|
||||
.titlebar.selection-mode .button:backdrop:insensitive > .label, .titlebar.selection-mode .button.flat:backdrop:insensitive > .label,
|
||||
.titlebar.selection-mode .button:backdrop:insensitive > .label, .titlebar.selection-mode .header-bar .button.titlebutton:backdrop:insensitive > .label, .titlebar.selection-mode .button.flat:backdrop:insensitive > .label, .titlebar.selection-mode .header-bar .titlebutton.button:backdrop:insensitive > .label,
|
||||
.titlebar.selection-mode .titlebutton.button:backdrop:insensitive > .label,
|
||||
.header-bar.selection-mode .button:backdrop:insensitive > .label,
|
||||
.header-bar.selection-mode .titlebar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.header-bar.selection-mode .button.flat:backdrop:insensitive > .label,
|
||||
.header-bar.selection-mode .titlebutton.button:backdrop:insensitive > .label {
|
||||
.header-bar.selection-mode .titlebutton.button:backdrop:insensitive > .label,
|
||||
.header-bar.selection-mode .titlebar .titlebutton.button:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.titlebar.selection-mode .button:backdrop:insensitive:active, .titlebar.selection-mode .button:backdrop:insensitive:checked, .titlebar.selection-mode .button.flat:backdrop:insensitive:active,
|
||||
.titlebar.selection-mode .titlebutton.button:backdrop:insensitive:active, .titlebar.selection-mode .button.flat:backdrop:insensitive:checked,
|
||||
@@ -1713,15 +1761,19 @@ GtkComboBox {
|
||||
background-image: linear-gradient(to bottom, #1d4876);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(43, 100, 160, 0);
|
||||
border-color: #0f2b48; }
|
||||
.titlebar.selection-mode .button:backdrop:insensitive:active > .label, .titlebar.selection-mode .button:backdrop:insensitive:checked > .label, .titlebar.selection-mode .button.flat:backdrop:insensitive:active > .label,
|
||||
.titlebar.selection-mode .titlebutton.button:backdrop:insensitive:active > .label, .titlebar.selection-mode .button.flat:backdrop:insensitive:checked > .label,
|
||||
.titlebar.selection-mode .button:backdrop:insensitive:active > .label, .titlebar.selection-mode .header-bar .button.titlebutton:backdrop:insensitive:active > .label, .titlebar.selection-mode .button:backdrop:insensitive:checked > .label, .titlebar.selection-mode .header-bar .button.titlebutton:backdrop:insensitive:checked > .label, .titlebar.selection-mode .button.flat:backdrop:insensitive:active > .label, .titlebar.selection-mode .header-bar .titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.titlebar.selection-mode .titlebutton.button:backdrop:insensitive:active > .label, .titlebar.selection-mode .button.flat:backdrop:insensitive:checked > .label, .titlebar.selection-mode .header-bar .titlebutton.button:backdrop:insensitive:checked > .label,
|
||||
.titlebar.selection-mode .titlebutton.button:backdrop:insensitive:checked > .label,
|
||||
.header-bar.selection-mode .button:backdrop:insensitive:active > .label,
|
||||
.header-bar.selection-mode .titlebar .button.titlebutton:backdrop:insensitive:active > .label,
|
||||
.header-bar.selection-mode .button:backdrop:insensitive:checked > .label,
|
||||
.header-bar.selection-mode .titlebar .button.titlebutton:backdrop:insensitive:checked > .label,
|
||||
.header-bar.selection-mode .button.flat:backdrop:insensitive:active > .label,
|
||||
.header-bar.selection-mode .titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.header-bar.selection-mode .titlebar .titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.header-bar.selection-mode .button.flat:backdrop:insensitive:checked > .label,
|
||||
.header-bar.selection-mode .titlebutton.button:backdrop:insensitive:checked > .label {
|
||||
.header-bar.selection-mode .titlebutton.button:backdrop:insensitive:checked > .label,
|
||||
.header-bar.selection-mode .titlebar .titlebutton.button:backdrop:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
.titlebar.selection-mode .button.flat:backdrop,
|
||||
.titlebar.selection-mode .titlebutton.button:backdrop, .titlebar.selection-mode .button.flat:insensitive,
|
||||
@@ -1747,8 +1799,9 @@ GtkComboBox {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(43, 100, 160, 0.55); }
|
||||
.titlebar.selection-mode .button:insensitive > .label,
|
||||
.header-bar.selection-mode .button:insensitive > .label {
|
||||
.titlebar.selection-mode .button:insensitive > .label, .titlebar.selection-mode .header-bar .button.titlebutton:insensitive > .label,
|
||||
.header-bar.selection-mode .button:insensitive > .label,
|
||||
.header-bar.selection-mode .titlebar .button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.titlebar.selection-mode .button:insensitive:active, .titlebar.selection-mode .button:insensitive:checked,
|
||||
.header-bar.selection-mode .button:insensitive:active,
|
||||
@@ -1757,9 +1810,11 @@ GtkComboBox {
|
||||
border-color: #0b1e33;
|
||||
background-image: linear-gradient(to bottom, #1b436f, #1d4876);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(43, 100, 160, 0.55); }
|
||||
.titlebar.selection-mode .button:insensitive:active > .label, .titlebar.selection-mode .button:insensitive:checked > .label,
|
||||
.titlebar.selection-mode .button:insensitive:active > .label, .titlebar.selection-mode .header-bar .button.titlebutton:insensitive:active > .label, .titlebar.selection-mode .button:insensitive:checked > .label, .titlebar.selection-mode .header-bar .button.titlebutton:insensitive:checked > .label,
|
||||
.header-bar.selection-mode .button:insensitive:active > .label,
|
||||
.header-bar.selection-mode .button:insensitive:checked > .label {
|
||||
.header-bar.selection-mode .titlebar .button.titlebutton:insensitive:active > .label,
|
||||
.header-bar.selection-mode .button:insensitive:checked > .label,
|
||||
.header-bar.selection-mode .titlebar .button.titlebutton:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
.titlebar.selection-mode .button.suggested-action,
|
||||
.header-bar.selection-mode .button.suggested-action {
|
||||
@@ -1800,8 +1855,9 @@ GtkComboBox {
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(43, 100, 160, 0.55);
|
||||
border-color: #0f2b48; }
|
||||
.titlebar.selection-mode .button.suggested-action:insensitive > .label,
|
||||
.header-bar.selection-mode .button.suggested-action:insensitive > .label {
|
||||
.titlebar.selection-mode .button.suggested-action:insensitive > .label, .titlebar.selection-mode .header-bar .suggested-action.button.titlebutton:insensitive > .label,
|
||||
.header-bar.selection-mode .button.suggested-action:insensitive > .label,
|
||||
.header-bar.selection-mode .titlebar .suggested-action.button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.titlebar.selection-mode .button.suggested-action:backdrop,
|
||||
.header-bar.selection-mode .button.suggested-action:backdrop {
|
||||
@@ -1821,8 +1877,9 @@ GtkComboBox {
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(43, 100, 160, 0);
|
||||
border-color: #0f2b48; }
|
||||
.titlebar.selection-mode .button.suggested-action:backdrop:insensitive > .label,
|
||||
.header-bar.selection-mode .button.suggested-action:backdrop:insensitive > .label {
|
||||
.titlebar.selection-mode .button.suggested-action:backdrop:insensitive > .label, .titlebar.selection-mode .header-bar .suggested-action.button.titlebutton:backdrop:insensitive > .label,
|
||||
.header-bar.selection-mode .button.suggested-action:backdrop:insensitive > .label,
|
||||
.header-bar.selection-mode .titlebar .suggested-action.button.titlebutton:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.titlebar.selection-mode .selection-menu, .titlebar.selection-mode .selection-menu:backdrop,
|
||||
.header-bar.selection-mode .selection-menu,
|
||||
@@ -3566,7 +3623,8 @@ GtkPlacesSidebar.sidebar .view .separator:backdrop {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.list-row:selected .button:backdrop:insensitive > .label, .list-row:selected .button.flat:backdrop:insensitive > .label, .list-row:selected .header-bar .titlebutton.button:backdrop:insensitive > .label, .header-bar .list-row:selected .titlebutton.button:backdrop:insensitive > .label,
|
||||
.list-row:selected .button:backdrop:insensitive > .label, .list-row:selected .header-bar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.list-row:selected .titlebar .button.titlebutton:backdrop:insensitive > .label, .list-row:selected .button.flat:backdrop:insensitive > .label, .list-row:selected .header-bar .titlebutton.button:backdrop:insensitive > .label, .header-bar .list-row:selected .titlebutton.button:backdrop:insensitive > .label,
|
||||
.list-row:selected .titlebar .titlebutton.button:backdrop:insensitive > .label,
|
||||
.titlebar .list-row:selected .titlebutton.button:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
@@ -3579,7 +3637,9 @@ GtkPlacesSidebar.sidebar .view .separator:backdrop {
|
||||
border-color: #1e2222;
|
||||
background-image: linear-gradient(to bottom, #262929);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.list-row:selected .button:backdrop:insensitive:active > .label, .list-row:selected .button:backdrop:insensitive:checked > .label, .list-row:selected .button.flat:backdrop:insensitive:active > .label, .list-row:selected .header-bar .titlebutton.button:backdrop:insensitive:active > .label, .header-bar .list-row:selected .titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.list-row:selected .button:backdrop:insensitive:active > .label, .list-row:selected .header-bar .button.titlebutton:backdrop:insensitive:active > .label,
|
||||
.list-row:selected .titlebar .button.titlebutton:backdrop:insensitive:active > .label, .list-row:selected .button:backdrop:insensitive:checked > .label, .list-row:selected .header-bar .button.titlebutton:backdrop:insensitive:checked > .label,
|
||||
.list-row:selected .titlebar .button.titlebutton:backdrop:insensitive:checked > .label, .list-row:selected .button.flat:backdrop:insensitive:active > .label, .list-row:selected .header-bar .titlebutton.button:backdrop:insensitive:active > .label, .header-bar .list-row:selected .titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.list-row:selected .titlebar .titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.titlebar .list-row:selected .titlebutton.button:backdrop:insensitive:active > .label, .list-row:selected .button.flat:backdrop:insensitive:checked > .label, .list-row:selected .header-bar .titlebutton.button:backdrop:insensitive:checked > .label, .header-bar .list-row:selected .titlebutton.button:backdrop:insensitive:checked > .label,
|
||||
.list-row:selected .titlebar .titlebutton.button:backdrop:insensitive:checked > .label,
|
||||
@@ -3602,14 +3662,17 @@ GtkPlacesSidebar.sidebar .view .separator:backdrop {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.list-row:selected .button:insensitive > .label {
|
||||
.list-row:selected .button:insensitive > .label, .list-row:selected .header-bar .button.titlebutton:insensitive > .label,
|
||||
.list-row:selected .titlebar .button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.list-row:selected .button:insensitive:active, .list-row:selected .button:insensitive:checked {
|
||||
color: #939695;
|
||||
border-color: #1c1f1f;
|
||||
background-image: linear-gradient(to bottom, #2f3333, #323636);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.list-row:selected .button:insensitive:active > .label, .list-row:selected .button:insensitive:checked > .label {
|
||||
.list-row:selected .button:insensitive:active > .label, .list-row:selected .header-bar .button.titlebutton:insensitive:active > .label,
|
||||
.list-row:selected .titlebar .button.titlebutton:insensitive:active > .label, .list-row:selected .button:insensitive:checked > .label, .list-row:selected .header-bar .button.titlebutton:insensitive:checked > .label,
|
||||
.list-row:selected .titlebar .button.titlebutton:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
|
||||
.list-row, list-row.button, .header-bar list-row.button.titlebutton,
|
||||
@@ -3783,7 +3846,8 @@ GtkCalendar {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.message-dialog.csd .dialog-action-area .button:insensitive > .label {
|
||||
.message-dialog.csd .dialog-action-area .button:insensitive > .label, .message-dialog.csd .dialog-action-area .header-bar .button.titlebutton:insensitive > .label,
|
||||
.message-dialog.csd .dialog-action-area .titlebar .button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.message-dialog.csd .dialog-action-area .button:backdrop {
|
||||
color: #939695;
|
||||
@@ -3799,7 +3863,8 @@ GtkCalendar {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.message-dialog.csd .dialog-action-area .button:backdrop:insensitive > .label {
|
||||
.message-dialog.csd .dialog-action-area .button:backdrop:insensitive > .label, .message-dialog.csd .dialog-action-area .header-bar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.message-dialog.csd .dialog-action-area .titlebar .button.titlebutton:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.message-dialog.csd .dialog-action-area .button.suggested-action {
|
||||
color: white;
|
||||
@@ -3839,7 +3904,8 @@ GtkCalendar {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.message-dialog.csd .dialog-action-area .button.suggested-action:backdrop:insensitive > .label {
|
||||
.message-dialog.csd .dialog-action-area .button.suggested-action:backdrop:insensitive > .label, .message-dialog.csd .dialog-action-area .header-bar .suggested-action.button.titlebutton:backdrop:insensitive > .label,
|
||||
.message-dialog.csd .dialog-action-area .titlebar .suggested-action.button.titlebutton:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.message-dialog.csd .dialog-action-area .button.suggested-action:insensitive {
|
||||
color: #939695;
|
||||
@@ -3848,7 +3914,8 @@ GtkCalendar {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.message-dialog.csd .dialog-action-area .button.suggested-action:insensitive > .label {
|
||||
.message-dialog.csd .dialog-action-area .button.suggested-action:insensitive > .label, .message-dialog.csd .dialog-action-area .header-bar .suggested-action.button.titlebutton:insensitive > .label,
|
||||
.message-dialog.csd .dialog-action-area .titlebar .suggested-action.button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.message-dialog.csd .dialog-action-area .button.destructive-action {
|
||||
color: white;
|
||||
@@ -3888,7 +3955,8 @@ GtkCalendar {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.message-dialog.csd .dialog-action-area .button.destructive-action:backdrop:insensitive > .label {
|
||||
.message-dialog.csd .dialog-action-area .button.destructive-action:backdrop:insensitive > .label, .message-dialog.csd .dialog-action-area .header-bar .destructive-action.button.titlebutton:backdrop:insensitive > .label,
|
||||
.message-dialog.csd .dialog-action-area .titlebar .destructive-action.button.titlebutton:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.message-dialog.csd .dialog-action-area .button.destructive-action:insensitive {
|
||||
color: #939695;
|
||||
@@ -3897,7 +3965,8 @@ GtkCalendar {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.message-dialog.csd .dialog-action-area .button.destructive-action:insensitive > .label {
|
||||
.message-dialog.csd .dialog-action-area .button.destructive-action:insensitive > .label, .message-dialog.csd .dialog-action-area .header-bar .destructive-action.button.titlebutton:insensitive > .label,
|
||||
.message-dialog.csd .dialog-action-area .titlebar .destructive-action.button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.message-dialog.csd .dialog-action-area .button, .message-dialog.csd .dialog-action-area .button:hover, .message-dialog.csd .dialog-action-area .button:active, .message-dialog.csd .dialog-action-area .button:insensitive, .message-dialog.csd .dialog-action-area .button:backdrop, .message-dialog.csd .dialog-action-area .button:backdrop:insensitive, .message-dialog.csd .dialog-action-area .button.suggested-action, .message-dialog.csd .dialog-action-area .button.suggested-action:hover, .message-dialog.csd .dialog-action-area .button.suggested-action:active, .message-dialog.csd .dialog-action-area .button.suggested-action:backdrop, .message-dialog.csd .dialog-action-area .button.suggested-action:backdrop:insensitive, .message-dialog.csd .dialog-action-area .button.suggested-action:insensitive, .message-dialog.csd .dialog-action-area .button.destructive-action, .message-dialog.csd .dialog-action-area .button.destructive-action:hover, .message-dialog.csd .dialog-action-area .button.destructive-action:active, .message-dialog.csd .dialog-action-area .button.destructive-action:backdrop, .message-dialog.csd .dialog-action-area .button.destructive-action:backdrop:insensitive, .message-dialog.csd .dialog-action-area .button.destructive-action:insensitive {
|
||||
border-left-style: solid;
|
||||
@@ -4051,10 +4120,17 @@ GtkInfoBar {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.info .button:insensitive > .label,
|
||||
.info .button:insensitive > .label, .info .header-bar .button.titlebutton:insensitive > .label,
|
||||
.info .titlebar .button.titlebutton:insensitive > .label,
|
||||
.question .button:insensitive > .label,
|
||||
.question .header-bar .button.titlebutton:insensitive > .label,
|
||||
.question .titlebar .button.titlebutton:insensitive > .label,
|
||||
.warning .button:insensitive > .label,
|
||||
.error .button:insensitive > .label {
|
||||
.warning .header-bar .button.titlebutton:insensitive > .label,
|
||||
.warning .titlebar .button.titlebutton:insensitive > .label,
|
||||
.error .button:insensitive > .label,
|
||||
.error .header-bar .button.titlebutton:insensitive > .label,
|
||||
.error .titlebar .button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.info .button:backdrop,
|
||||
.question .button:backdrop,
|
||||
@@ -4078,10 +4154,17 @@ GtkInfoBar {
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0);
|
||||
border-color: #0b1e33; }
|
||||
.info .button:backdrop:insensitive > .label,
|
||||
.info .button:backdrop:insensitive > .label, .info .header-bar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.info .titlebar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.question .button:backdrop:insensitive > .label,
|
||||
.question .header-bar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.question .titlebar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.warning .button:backdrop:insensitive > .label,
|
||||
.error .button:backdrop:insensitive > .label {
|
||||
.warning .header-bar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.warning .titlebar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.error .button:backdrop:insensitive > .label,
|
||||
.error .header-bar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.error .titlebar .button.titlebutton:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.info .label:selected,
|
||||
.info .label:selected:focus,
|
||||
@@ -4245,6 +4328,12 @@ GtkVolumeButton.button, .header-bar GtkVolumeButton.button.titlebutton,
|
||||
.window-frame.csd.message-dialog {
|
||||
border-radius: 7px;
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(28, 31, 31, 0.8); }
|
||||
.window-frame.solid-csd {
|
||||
border-radius: 0;
|
||||
margin: 4px;
|
||||
background-color: #393f3f;
|
||||
border: solid 1px #1e2222;
|
||||
box-shadow: none; }
|
||||
|
||||
.header-bar .titlebutton.button,
|
||||
.titlebar .titlebutton.button {
|
||||
@@ -4268,8 +4357,7 @@ GtkVolumeButton.button, .header-bar GtkVolumeButton.button.titlebutton,
|
||||
color: #ffffff; }
|
||||
.view:backdrop:selected, GtkCalendar:backdrop:selected, .label:backdrop:selected, .grid-child:backdrop:selected, .entry:backdrop:selected, .menuitem.button.flat:backdrop:selected, .header-bar .menuitem.titlebutton.button:backdrop:selected,
|
||||
.titlebar .menuitem.titlebutton.button:backdrop:selected, .list-row:backdrop:selected, .sidebar:backdrop:selected, GtkPlacesSidebar.sidebar .view:backdrop:selected, GtkPlacesSidebar.sidebar GtkCalendar:backdrop:selected {
|
||||
color: #ffffff;
|
||||
background-color: #5e5e5e; }
|
||||
color: #ffffff; }
|
||||
|
||||
/* Decouple the font of context menus from their entry/textview */
|
||||
.touch-selection,
|
||||
|
||||
@@ -178,7 +178,7 @@ GtkTextView {
|
||||
.entry:focus {
|
||||
background-color: transparent;
|
||||
background-image: linear-gradient(to bottom, #f7f7f7, #ffffff 90%);
|
||||
box-shadow: inset 0 3px rgba(0, 0, 0, 0.02), inset 0 2px rgba(0, 0, 0, 0.03), inset 0 1px rgba(0, 0, 0, 0.08), inset 0 0 0 1px rgba(74, 144, 217, 0.15), 0 1px white;
|
||||
box-shadow: inset 0 3px rgba(0, 0, 0, 0.02), inset 0 2px rgba(0, 0, 0, 0.03), inset 0 1px rgba(0, 0, 0, 0.08), inset 0 0 0 1px #4a90d9, 0 1px white;
|
||||
border-color: #4a90d9; }
|
||||
.entry:insensitive {
|
||||
background-color: transparent;
|
||||
@@ -231,7 +231,7 @@ GtkTextView {
|
||||
.entry.error:focus {
|
||||
background-color: transparent;
|
||||
background-image: linear-gradient(to bottom, #f7f7f7, #ffffff 90%);
|
||||
box-shadow: inset 0 3px rgba(0, 0, 0, 0.02), inset 0 2px rgba(0, 0, 0, 0.03), inset 0 1px rgba(0, 0, 0, 0.08), inset 0 0 0 1px rgba(204, 0, 0, 0.15), 0 1px white;
|
||||
box-shadow: inset 0 3px rgba(0, 0, 0, 0.02), inset 0 2px rgba(0, 0, 0, 0.03), inset 0 1px rgba(0, 0, 0, 0.08), inset 0 0 0 1px #cc0000, 0 1px white;
|
||||
border-color: #cc0000; }
|
||||
.entry.error:selected, .entry.error:selected:focus {
|
||||
background-color: #cc0000; }
|
||||
@@ -241,7 +241,7 @@ GtkTextView {
|
||||
.entry.warning:focus {
|
||||
background-color: transparent;
|
||||
background-image: linear-gradient(to bottom, #f7f7f7, #ffffff 90%);
|
||||
box-shadow: inset 0 3px rgba(0, 0, 0, 0.02), inset 0 2px rgba(0, 0, 0, 0.03), inset 0 1px rgba(0, 0, 0, 0.08), inset 0 0 0 1px rgba(245, 121, 0, 0.15), 0 1px white;
|
||||
box-shadow: inset 0 3px rgba(0, 0, 0, 0.02), inset 0 2px rgba(0, 0, 0, 0.03), inset 0 1px rgba(0, 0, 0, 0.08), inset 0 0 0 1px #f57900, 0 1px white;
|
||||
border-color: #f57900; }
|
||||
.entry.warning:selected, .entry.warning:selected:focus {
|
||||
background-color: #f57900; }
|
||||
@@ -264,7 +264,7 @@ GtkTextView {
|
||||
box-shadow: none; }
|
||||
.linked.vertical > .entry:focus {
|
||||
border-color: #4a90d9;
|
||||
box-shadow: inset 0 0 0 1px rgba(74, 144, 217, 0.15), 0 -1px 0 0 #4a90d9; }
|
||||
box-shadow: inset 0 0 0 1px #4a90d9, 0 -1px 0 0 #4a90d9; }
|
||||
.linked.vertical > .entry:insensitive {
|
||||
background-color: transparent;
|
||||
background-image: linear-gradient(to bottom, #f7f7f7, #ffffff 90%);
|
||||
@@ -299,7 +299,7 @@ GtkTextView {
|
||||
.linked.vertical > .entry:first-child:focus {
|
||||
background-color: transparent;
|
||||
background-image: linear-gradient(to bottom, #f7f7f7, #ffffff 90%);
|
||||
box-shadow: inset 0 3px rgba(0, 0, 0, 0.02), inset 0 2px rgba(0, 0, 0, 0.03), inset 0 1px rgba(0, 0, 0, 0.08), inset 0 0 0 1px rgba(74, 144, 217, 0.15);
|
||||
box-shadow: inset 0 3px rgba(0, 0, 0, 0.02), inset 0 2px rgba(0, 0, 0, 0.03), inset 0 1px rgba(0, 0, 0, 0.08), inset 0 0 0 1px #4a90d9;
|
||||
border-color: #4a90d9; }
|
||||
.linked.vertical > .entry:first-child:insensitive {
|
||||
background-color: transparent;
|
||||
@@ -336,7 +336,7 @@ GtkTextView {
|
||||
box-shadow: 0 1px white; }
|
||||
.linked.vertical > .entry:last-child:focus {
|
||||
border-color: #4a90d9;
|
||||
box-shadow: inset 0 0 0 1px rgba(74, 144, 217, 0.15), 0 -1px 0 0 #4a90d9, 0 1px white; }
|
||||
box-shadow: inset 0 0 0 1px #4a90d9, 0 -1px 0 0 #4a90d9, 0 1px white; }
|
||||
.linked.vertical > .entry:last-child:insensitive {
|
||||
background-color: transparent;
|
||||
background-image: linear-gradient(to bottom, #f7f7f7, #ffffff 90%);
|
||||
@@ -375,7 +375,7 @@ GtkTextView {
|
||||
border-color: #4a90d9;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5));
|
||||
background-clip: padding-box;
|
||||
box-shadow: inset 0 0 0 1px rgba(74, 144, 217, 0.15);
|
||||
box-shadow: inset 0 0 0 1px #4a90d9;
|
||||
text-shadow: 0 1px black;
|
||||
icon-shadow: 0 1px black; }
|
||||
.osd .entry:backdrop {
|
||||
@@ -482,7 +482,8 @@ GtkTextView {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(255, 255, 255, 0); }
|
||||
.button:backdrop:insensitive > .label, .button.flat:backdrop:insensitive > .label, .header-bar .titlebutton.button:backdrop:insensitive > .label,
|
||||
.button:backdrop:insensitive > .label, .header-bar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.titlebar .button.titlebutton:backdrop:insensitive > .label, .button.flat:backdrop:insensitive > .label, .header-bar .titlebutton.button:backdrop:insensitive > .label,
|
||||
.titlebar .titlebutton.button:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.button:backdrop:insensitive:active, .button:backdrop:insensitive:checked, .button.flat:backdrop:insensitive:active, .header-bar .titlebutton.button:backdrop:insensitive:active,
|
||||
@@ -492,7 +493,9 @@ GtkTextView {
|
||||
border-color: #a8a8a8;
|
||||
background-image: linear-gradient(to bottom, #e7e7e7);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(255, 255, 255, 0); }
|
||||
.button:backdrop:insensitive:active > .label, .button:backdrop:insensitive:checked > .label, .button.flat:backdrop:insensitive:active > .label, .header-bar .titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.button:backdrop:insensitive:active > .label, .header-bar .button.titlebutton:backdrop:insensitive:active > .label,
|
||||
.titlebar .button.titlebutton:backdrop:insensitive:active > .label, .button:backdrop:insensitive:checked > .label, .header-bar .button.titlebutton:backdrop:insensitive:checked > .label,
|
||||
.titlebar .button.titlebutton:backdrop:insensitive:checked > .label, .button.flat:backdrop:insensitive:active > .label, .header-bar .titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.titlebar .titlebutton.button:backdrop:insensitive:active > .label, .button.flat:backdrop:insensitive:checked > .label, .header-bar .titlebutton.button:backdrop:insensitive:checked > .label,
|
||||
.titlebar .titlebutton.button:backdrop:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
@@ -514,14 +517,17 @@ GtkTextView {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px white; }
|
||||
.button:insensitive > .label {
|
||||
.button:insensitive > .label, .header-bar .button.titlebutton:insensitive > .label,
|
||||
.titlebar .button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.button:insensitive:active, .button:insensitive:checked {
|
||||
color: #8d9091;
|
||||
border-color: #a1a1a1;
|
||||
background-image: linear-gradient(to bottom, #ebebeb, #f4f4f4);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px white; }
|
||||
.button:insensitive:active > .label, .button:insensitive:checked > .label {
|
||||
.button:insensitive:active > .label, .header-bar .button.titlebutton:insensitive:active > .label,
|
||||
.titlebar .button.titlebutton:insensitive:active > .label, .button:insensitive:checked > .label, .header-bar .button.titlebutton:insensitive:checked > .label,
|
||||
.titlebar .button.titlebutton:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
.button.osd, .header-bar .osd.button.titlebutton,
|
||||
.titlebar .osd.button.titlebutton {
|
||||
@@ -763,7 +769,8 @@ GtkTextView {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(255, 255, 255, 0); }
|
||||
.button.suggested-action:backdrop:insensitive > .label, .button.suggested-action.flat:backdrop:insensitive > .label, .header-bar .suggested-action.titlebutton.button:backdrop:insensitive > .label,
|
||||
.button.suggested-action:backdrop:insensitive > .label, .header-bar .suggested-action.button.titlebutton:backdrop:insensitive > .label,
|
||||
.titlebar .suggested-action.button.titlebutton:backdrop:insensitive > .label, .button.suggested-action.flat:backdrop:insensitive > .label, .header-bar .suggested-action.titlebutton.button:backdrop:insensitive > .label,
|
||||
.titlebar .suggested-action.titlebutton.button:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.button.suggested-action:backdrop:insensitive:active, .button.suggested-action:backdrop:insensitive:checked, .button.suggested-action.flat:backdrop:insensitive:active, .header-bar .suggested-action.titlebutton.button:backdrop:insensitive:active,
|
||||
@@ -773,7 +780,9 @@ GtkTextView {
|
||||
border-color: #5093da;
|
||||
background-image: linear-gradient(to bottom, #5093da);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(255, 255, 255, 0); }
|
||||
.button.suggested-action:backdrop:insensitive:active > .label, .button.suggested-action:backdrop:insensitive:checked > .label, .button.suggested-action.flat:backdrop:insensitive:active > .label, .header-bar .suggested-action.titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.button.suggested-action:backdrop:insensitive:active > .label, .header-bar .suggested-action.button.titlebutton:backdrop:insensitive:active > .label,
|
||||
.titlebar .suggested-action.button.titlebutton:backdrop:insensitive:active > .label, .button.suggested-action:backdrop:insensitive:checked > .label, .header-bar .suggested-action.button.titlebutton:backdrop:insensitive:checked > .label,
|
||||
.titlebar .suggested-action.button.titlebutton:backdrop:insensitive:checked > .label, .button.suggested-action.flat:backdrop:insensitive:active > .label, .header-bar .suggested-action.titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.titlebar .suggested-action.titlebutton.button:backdrop:insensitive:active > .label, .button.suggested-action.flat:backdrop:insensitive:checked > .label, .header-bar .suggested-action.titlebutton.button:backdrop:insensitive:checked > .label,
|
||||
.titlebar .suggested-action.titlebutton.button:backdrop:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
@@ -795,14 +804,17 @@ GtkTextView {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px white; }
|
||||
.button.suggested-action:insensitive > .label {
|
||||
.button.suggested-action:insensitive > .label, .header-bar .suggested-action.button.titlebutton:insensitive > .label,
|
||||
.titlebar .suggested-action.button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.button.suggested-action:insensitive:active, .button.suggested-action:insensitive:checked {
|
||||
color: #b9d3f0;
|
||||
border-color: #1c5187;
|
||||
background-image: linear-gradient(to bottom, #4a8cd1, #5093da);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px white; }
|
||||
.button.suggested-action:insensitive:active > .label, .button.suggested-action:insensitive:checked > .label {
|
||||
.button.suggested-action:insensitive:active > .label, .header-bar .suggested-action.button.titlebutton:insensitive:active > .label,
|
||||
.titlebar .suggested-action.button.titlebutton:insensitive:active > .label, .button.suggested-action:insensitive:checked > .label, .header-bar .suggested-action.button.titlebutton:insensitive:checked > .label,
|
||||
.titlebar .suggested-action.button.titlebutton:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
.osd .button.suggested-action {
|
||||
color: #eeeeec;
|
||||
@@ -904,7 +916,8 @@ GtkTextView {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(255, 255, 255, 0); }
|
||||
.button.destructive-action:backdrop:insensitive > .label, .button.destructive-action.flat:backdrop:insensitive > .label, .header-bar .destructive-action.titlebutton.button:backdrop:insensitive > .label,
|
||||
.button.destructive-action:backdrop:insensitive > .label, .header-bar .destructive-action.button.titlebutton:backdrop:insensitive > .label,
|
||||
.titlebar .destructive-action.button.titlebutton:backdrop:insensitive > .label, .button.destructive-action.flat:backdrop:insensitive > .label, .header-bar .destructive-action.titlebutton.button:backdrop:insensitive > .label,
|
||||
.titlebar .destructive-action.titlebutton.button:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.button.destructive-action:backdrop:insensitive:active, .button.destructive-action:backdrop:insensitive:checked, .button.destructive-action.flat:backdrop:insensitive:active, .header-bar .destructive-action.titlebutton.button:backdrop:insensitive:active,
|
||||
@@ -914,7 +927,9 @@ GtkTextView {
|
||||
border-color: #ef3131;
|
||||
background-image: linear-gradient(to bottom, #ef3131);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(255, 255, 255, 0); }
|
||||
.button.destructive-action:backdrop:insensitive:active > .label, .button.destructive-action:backdrop:insensitive:checked > .label, .button.destructive-action.flat:backdrop:insensitive:active > .label, .header-bar .destructive-action.titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.button.destructive-action:backdrop:insensitive:active > .label, .header-bar .destructive-action.button.titlebutton:backdrop:insensitive:active > .label,
|
||||
.titlebar .destructive-action.button.titlebutton:backdrop:insensitive:active > .label, .button.destructive-action:backdrop:insensitive:checked > .label, .header-bar .destructive-action.button.titlebutton:backdrop:insensitive:checked > .label,
|
||||
.titlebar .destructive-action.button.titlebutton:backdrop:insensitive:checked > .label, .button.destructive-action.flat:backdrop:insensitive:active > .label, .header-bar .destructive-action.titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.titlebar .destructive-action.titlebutton.button:backdrop:insensitive:active > .label, .button.destructive-action.flat:backdrop:insensitive:checked > .label, .header-bar .destructive-action.titlebutton.button:backdrop:insensitive:checked > .label,
|
||||
.titlebar .destructive-action.titlebutton.button:backdrop:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
@@ -936,14 +951,17 @@ GtkTextView {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px white; }
|
||||
.button.destructive-action:insensitive > .label {
|
||||
.button.destructive-action:insensitive > .label, .header-bar .destructive-action.button.titlebutton:insensitive > .label,
|
||||
.titlebar .destructive-action.button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.button.destructive-action:insensitive:active, .button.destructive-action:insensitive:checked {
|
||||
color: #f8acac;
|
||||
border-color: #8e0b0b;
|
||||
background-image: linear-gradient(to bottom, #e52d2d, #ef3131);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px white; }
|
||||
.button.destructive-action:insensitive:active > .label, .button.destructive-action:insensitive:checked > .label {
|
||||
.button.destructive-action:insensitive:active > .label, .header-bar .destructive-action.button.titlebutton:insensitive:active > .label,
|
||||
.titlebar .destructive-action.button.titlebutton:insensitive:active > .label, .button.destructive-action:insensitive:checked > .label, .header-bar .destructive-action.button.titlebutton:insensitive:checked > .label,
|
||||
.titlebar .destructive-action.button.titlebutton:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
.osd .button.destructive-action {
|
||||
color: #eeeeec;
|
||||
@@ -1016,7 +1034,8 @@ GtkTextView {
|
||||
padding-right: 6px;
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px; }
|
||||
.stack-switcher > .button.text-button {
|
||||
.stack-switcher > .button.text-button, .header-bar .stack-switcher > .text-button.button.titlebutton,
|
||||
.titlebar .stack-switcher > .text-button.button.titlebutton {
|
||||
padding: 5px 10px 6px; }
|
||||
.stack-switcher > .button.image-button, .header-bar .stack-switcher > .titlebutton.button,
|
||||
.titlebar .stack-switcher > .titlebutton.button {
|
||||
@@ -1055,7 +1074,8 @@ GtkTextView {
|
||||
text-shadow: 0 1px rgba(255, 255, 255, 0.76923);
|
||||
icon-shadow: 0 1px rgba(255, 255, 255, 0.76923);
|
||||
box-shadow: inset 0 1px white, 0 1px white; }
|
||||
.inline-toolbar GtkToolButton > .button:hover {
|
||||
.inline-toolbar GtkToolButton > .button:hover, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:hover,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:hover {
|
||||
color: #2e3436;
|
||||
outline-color: rgba(46, 52, 54, 0.3);
|
||||
border-color: #a1a1a1;
|
||||
@@ -1063,7 +1083,9 @@ GtkTextView {
|
||||
text-shadow: 0 1px rgba(255, 255, 255, 0.76923);
|
||||
icon-shadow: 0 1px rgba(255, 255, 255, 0.76923);
|
||||
box-shadow: inset 0 1px white, 0 1px white; }
|
||||
.inline-toolbar GtkToolButton > .button:active, .inline-toolbar GtkToolButton > .button:checked {
|
||||
.inline-toolbar GtkToolButton > .button:active, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:active,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:active, .inline-toolbar GtkToolButton > .button:checked, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:checked,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:checked {
|
||||
color: #2e3436;
|
||||
outline-color: rgba(46, 52, 54, 0.3);
|
||||
border-color: #a1a1a1;
|
||||
@@ -1071,7 +1093,8 @@ GtkTextView {
|
||||
text-shadow: 0 1px rgba(255, 255, 255, 0.76923);
|
||||
icon-shadow: 0 1px rgba(255, 255, 255, 0.76923);
|
||||
box-shadow: inset 0 1px rgba(0, 0, 0, 0.07), inset 0 2px 1px -2px rgba(0, 0, 0, 0.6), 0 1px white; }
|
||||
.inline-toolbar GtkToolButton > .button:insensitive {
|
||||
.inline-toolbar GtkToolButton > .button:insensitive, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:insensitive,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:insensitive {
|
||||
color: #8d9091;
|
||||
border-color: #a1a1a1;
|
||||
background-image: linear-gradient(to bottom, #f4f4f4);
|
||||
@@ -1080,26 +1103,32 @@ GtkTextView {
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px white; }
|
||||
.inline-toolbar GtkToolButton > .button:insensitive > .label {
|
||||
color: inherit; }
|
||||
.inline-toolbar GtkToolButton > .button:insensitive:active, .inline-toolbar GtkToolButton > .button:insensitive:checked {
|
||||
.inline-toolbar GtkToolButton > .button:insensitive:active, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:insensitive:active,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:insensitive:active, .inline-toolbar GtkToolButton > .button:insensitive:checked, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:insensitive:checked,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:insensitive:checked {
|
||||
color: #8d9091;
|
||||
border-color: #a1a1a1;
|
||||
background-image: linear-gradient(to bottom, #ebebeb, #f4f4f4);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px white; }
|
||||
.inline-toolbar GtkToolButton > .button:insensitive:active > .label, .inline-toolbar GtkToolButton > .button:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
.inline-toolbar GtkToolButton > .button:backdrop {
|
||||
.inline-toolbar GtkToolButton > .button:backdrop, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:backdrop,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:backdrop {
|
||||
color: #8d9091;
|
||||
border-color: #a8a8a8;
|
||||
background-image: linear-gradient(to bottom, #ededed);
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(255, 255, 255, 0); }
|
||||
.inline-toolbar GtkToolButton > .button:backdrop:active, .inline-toolbar GtkToolButton > .button:backdrop:checked {
|
||||
.inline-toolbar GtkToolButton > .button:backdrop:active, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:backdrop:active,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:backdrop:active, .inline-toolbar GtkToolButton > .button:backdrop:checked, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:backdrop:checked,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:backdrop:checked {
|
||||
color: #8d9091;
|
||||
border-color: #a8a8a8;
|
||||
background-image: linear-gradient(to bottom, #d4d4d4);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(255, 255, 255, 0); }
|
||||
.inline-toolbar GtkToolButton > .button:backdrop:insensitive {
|
||||
.inline-toolbar GtkToolButton > .button:backdrop:insensitive, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:backdrop:insensitive,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:backdrop:insensitive {
|
||||
color: #c7c7c7;
|
||||
border-color: #a8a8a8;
|
||||
background-image: linear-gradient(to bottom, #f4f4f4);
|
||||
@@ -1108,7 +1137,9 @@ GtkTextView {
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(255, 255, 255, 0); }
|
||||
.inline-toolbar GtkToolButton > .button:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.inline-toolbar GtkToolButton > .button:backdrop:insensitive:active, .inline-toolbar GtkToolButton > .button:backdrop:insensitive:checked {
|
||||
.inline-toolbar GtkToolButton > .button:backdrop:insensitive:active, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:backdrop:insensitive:active,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:backdrop:insensitive:active, .inline-toolbar GtkToolButton > .button:backdrop:insensitive:checked, .inline-toolbar .header-bar GtkToolButton > .button.titlebutton:backdrop:insensitive:checked,
|
||||
.inline-toolbar .titlebar GtkToolButton > .button.titlebutton:backdrop:insensitive:checked {
|
||||
color: #c7c7c7;
|
||||
border-color: #a8a8a8;
|
||||
background-image: linear-gradient(to bottom, #e7e7e7);
|
||||
@@ -1147,12 +1178,14 @@ GtkComboBox.combobox-entry .titlebar .button.titlebutton,
|
||||
.inline-toolbar .header-bar GtkToolButton:backdrop:dir(rtl) > .button.titlebutton,
|
||||
.header-bar .inline-toolbar GtkToolButton:backdrop:dir(rtl) > .button.titlebutton,
|
||||
.inline-toolbar .titlebar GtkToolButton:backdrop:dir(rtl) > .button.titlebutton,
|
||||
.titlebar .inline-toolbar GtkToolButton:backdrop:dir(rtl) > .button.titlebutton, .osd .button:dir(rtl):hover, .osd .button:dir(rtl):active, .osd .button:dir(rtl):checked, .osd .button:dir(rtl):insensitive, .osd .button:dir(rtl):backdrop, .osd .button.suggested-action:dir(rtl), .osd .button.destructive-action:dir(rtl), .inline-toolbar .button:dir(rtl), .linked > .button:dir(rtl), GtkComboBox.combobox-entry .entry:dir(rtl), GtkComboBox.combobox-entry .button:dir(rtl), .linked > GtkComboBox > .button:dir(rtl) {
|
||||
.titlebar .inline-toolbar GtkToolButton:backdrop:dir(rtl) > .button.titlebutton, .osd .button:dir(rtl):hover, .osd .button:dir(rtl):active, .osd .button:dir(rtl):checked, .osd .button:dir(rtl):insensitive, .osd .button:dir(rtl):backdrop, .osd .button.suggested-action:dir(rtl), .osd .button.destructive-action:dir(rtl), .inline-toolbar .button:dir(rtl), .linked > .button:dir(rtl), .header-bar .linked > .button.titlebutton:dir(rtl),
|
||||
.titlebar .linked > .button.titlebutton:dir(rtl), GtkComboBox.combobox-entry .entry:dir(rtl), GtkComboBox.combobox-entry .button:dir(rtl), .linked > GtkComboBox > .button:dir(rtl) {
|
||||
border-radius: 0;
|
||||
border-right-style: none;
|
||||
border-left-style: solid; }
|
||||
|
||||
.osd .button:first-child:hover, .osd .button:first-child:active, .osd .button:first-child:checked, .osd .button:first-child:insensitive, .osd .button:first-child:backdrop, .osd .button.suggested-action:first-child, .osd .button.destructive-action:first-child, .inline-toolbar .button:first-child, .linked > .button:first-child, .inline-toolbar.toolbar GtkToolButton:first-child > .button.flat, .inline-toolbar GtkToolButton:first-child > .button.flat, .inline-toolbar.search-bar GtkToolButton:first-child > .button.flat, .inline-toolbar.location-bar GtkToolButton:first-child > .button.flat, .inline-toolbar .header-bar GtkToolButton:first-child > .button.titlebutton, .header-bar .inline-toolbar GtkToolButton:first-child > .button.titlebutton,
|
||||
.osd .button:first-child:hover, .osd .button:first-child:active, .osd .button:first-child:checked, .osd .button:first-child:insensitive, .osd .button:first-child:backdrop, .osd .button.suggested-action:first-child, .osd .button.destructive-action:first-child, .inline-toolbar .button:first-child, .linked > .button:first-child, .header-bar .linked > .button.titlebutton:first-child,
|
||||
.titlebar .linked > .button.titlebutton:first-child, .inline-toolbar.toolbar GtkToolButton:first-child > .button.flat, .inline-toolbar GtkToolButton:first-child > .button.flat, .inline-toolbar.search-bar GtkToolButton:first-child > .button.flat, .inline-toolbar.location-bar GtkToolButton:first-child > .button.flat, .inline-toolbar .header-bar GtkToolButton:first-child > .button.titlebutton, .header-bar .inline-toolbar GtkToolButton:first-child > .button.titlebutton,
|
||||
.inline-toolbar .titlebar GtkToolButton:first-child > .button.titlebutton,
|
||||
.titlebar .inline-toolbar GtkToolButton:first-child > .button.titlebutton,
|
||||
.inline-toolbar.toolbar GtkToolButton:backdrop:first-child > .button.flat,
|
||||
@@ -1165,7 +1198,8 @@ GtkComboBox.combobox-entry .titlebar .button.titlebutton,
|
||||
.titlebar .inline-toolbar GtkToolButton:backdrop:first-child > .button.titlebutton, GtkComboBox.combobox-entry .entry:first-child, GtkComboBox.combobox-entry .button:first-child, .linked > GtkComboBox:first-child > .button {
|
||||
border-radius: 3px 0 0 3px;
|
||||
border-left-style: solid; }
|
||||
.osd .button:last-child:hover, .osd .button:last-child:active, .osd .button:last-child:checked, .osd .button:last-child:insensitive, .osd .button:last-child:backdrop, .osd .button.suggested-action:last-child, .osd .button.destructive-action:last-child, .inline-toolbar .button:last-child, .linked > .button:last-child, .inline-toolbar.toolbar GtkToolButton:last-child > .button.flat, .inline-toolbar GtkToolButton:last-child > .button.flat, .inline-toolbar.search-bar GtkToolButton:last-child > .button.flat, .inline-toolbar.location-bar GtkToolButton:last-child > .button.flat, .inline-toolbar .header-bar GtkToolButton:last-child > .button.titlebutton, .header-bar .inline-toolbar GtkToolButton:last-child > .button.titlebutton,
|
||||
.osd .button:last-child:hover, .osd .button:last-child:active, .osd .button:last-child:checked, .osd .button:last-child:insensitive, .osd .button:last-child:backdrop, .osd .button.suggested-action:last-child, .osd .button.destructive-action:last-child, .inline-toolbar .button:last-child, .linked > .button:last-child, .header-bar .linked > .button.titlebutton:last-child,
|
||||
.titlebar .linked > .button.titlebutton:last-child, .inline-toolbar.toolbar GtkToolButton:last-child > .button.flat, .inline-toolbar GtkToolButton:last-child > .button.flat, .inline-toolbar.search-bar GtkToolButton:last-child > .button.flat, .inline-toolbar.location-bar GtkToolButton:last-child > .button.flat, .inline-toolbar .header-bar GtkToolButton:last-child > .button.titlebutton, .header-bar .inline-toolbar GtkToolButton:last-child > .button.titlebutton,
|
||||
.inline-toolbar .titlebar GtkToolButton:last-child > .button.titlebutton,
|
||||
.titlebar .inline-toolbar GtkToolButton:last-child > .button.titlebutton,
|
||||
.inline-toolbar.toolbar GtkToolButton:backdrop:last-child > .button.flat,
|
||||
@@ -1177,7 +1211,8 @@ GtkComboBox.combobox-entry .titlebar .button.titlebutton,
|
||||
.inline-toolbar .titlebar GtkToolButton:backdrop:last-child > .button.titlebutton,
|
||||
.titlebar .inline-toolbar GtkToolButton:backdrop:last-child > .button.titlebutton, GtkComboBox.combobox-entry .entry:last-child, GtkComboBox.combobox-entry .button:last-child, .linked > GtkComboBox:last-child > .button {
|
||||
border-radius: 0 3px 3px 0; }
|
||||
.osd .button:last-child:dir(rtl):hover, .osd .button:last-child:dir(rtl):active, .osd .button:last-child:dir(rtl):checked, .osd .button:last-child:dir(rtl):insensitive, .osd .button:last-child:dir(rtl):backdrop, .osd .button.suggested-action:last-child:dir(rtl), .osd .button.destructive-action:last-child:dir(rtl), .inline-toolbar .button:last-child:dir(rtl), .linked > .button:last-child:dir(rtl), .inline-toolbar GtkToolButton:last-child > .button.flat:dir(rtl), .inline-toolbar .header-bar GtkToolButton:last-child > .button.titlebutton:dir(rtl), .header-bar .inline-toolbar GtkToolButton:last-child > .button.titlebutton:dir(rtl),
|
||||
.osd .button:last-child:dir(rtl):hover, .osd .button:last-child:dir(rtl):active, .osd .button:last-child:dir(rtl):checked, .osd .button:last-child:dir(rtl):insensitive, .osd .button:last-child:dir(rtl):backdrop, .osd .button.suggested-action:last-child:dir(rtl), .osd .button.destructive-action:last-child:dir(rtl), .inline-toolbar .button:last-child:dir(rtl), .linked > .button:last-child:dir(rtl), .header-bar .linked > .button.titlebutton:last-child:dir(rtl),
|
||||
.titlebar .linked > .button.titlebutton:last-child:dir(rtl), .inline-toolbar GtkToolButton:last-child > .button.flat:dir(rtl), .inline-toolbar .header-bar GtkToolButton:last-child > .button.titlebutton:dir(rtl), .header-bar .inline-toolbar GtkToolButton:last-child > .button.titlebutton:dir(rtl),
|
||||
.inline-toolbar .titlebar GtkToolButton:last-child > .button.titlebutton:dir(rtl),
|
||||
.titlebar .inline-toolbar GtkToolButton:last-child > .button.titlebutton:dir(rtl),
|
||||
.inline-toolbar GtkToolButton:backdrop:last-child > .button.flat:dir(rtl), .inline-toolbar.toolbar GtkToolButton:last-child:dir(rtl) > .button.flat, .inline-toolbar GtkToolButton:last-child:dir(rtl) > .button.flat, .inline-toolbar.search-bar GtkToolButton:last-child:dir(rtl) > .button.flat, .inline-toolbar.location-bar GtkToolButton:last-child:dir(rtl) > .button.flat, .inline-toolbar .header-bar GtkToolButton:last-child:dir(rtl) > .button.titlebutton, .header-bar .inline-toolbar GtkToolButton:last-child:dir(rtl) > .button.titlebutton,
|
||||
@@ -1192,7 +1227,8 @@ GtkComboBox.combobox-entry .titlebar .button.titlebutton,
|
||||
.inline-toolbar .titlebar GtkToolButton:backdrop:last-child:dir(rtl) > .button.titlebutton,
|
||||
.titlebar .inline-toolbar GtkToolButton:backdrop:last-child:dir(rtl) > .button.titlebutton, GtkComboBox.combobox-entry .entry:last-child:dir(rtl), GtkComboBox.combobox-entry .button:last-child:dir(rtl), .linked > GtkComboBox:last-child > .button:dir(rtl) {
|
||||
border-right-style: solid; }
|
||||
.osd .button:only-child:hover, .osd .button:only-child:active, .osd .button:only-child:checked, .osd .button:only-child:insensitive, .osd .button:only-child:backdrop, .osd .button.suggested-action:only-child, .osd .button.destructive-action:only-child, .inline-toolbar .button:only-child, .linked > .button:only-child, .inline-toolbar.toolbar GtkToolButton:only-child > .button.flat, .inline-toolbar GtkToolButton:only-child > .button.flat, .inline-toolbar.search-bar GtkToolButton:only-child > .button.flat, .inline-toolbar.location-bar GtkToolButton:only-child > .button.flat, .inline-toolbar .header-bar GtkToolButton:only-child > .button.titlebutton, .header-bar .inline-toolbar GtkToolButton:only-child > .button.titlebutton,
|
||||
.osd .button:only-child:hover, .osd .button:only-child:active, .osd .button:only-child:checked, .osd .button:only-child:insensitive, .osd .button:only-child:backdrop, .osd .button.suggested-action:only-child, .osd .button.destructive-action:only-child, .inline-toolbar .button:only-child, .linked > .button:only-child, .header-bar .linked > .button.titlebutton:only-child,
|
||||
.titlebar .linked > .button.titlebutton:only-child, .inline-toolbar.toolbar GtkToolButton:only-child > .button.flat, .inline-toolbar GtkToolButton:only-child > .button.flat, .inline-toolbar.search-bar GtkToolButton:only-child > .button.flat, .inline-toolbar.location-bar GtkToolButton:only-child > .button.flat, .inline-toolbar .header-bar GtkToolButton:only-child > .button.titlebutton, .header-bar .inline-toolbar GtkToolButton:only-child > .button.titlebutton,
|
||||
.inline-toolbar .titlebar GtkToolButton:only-child > .button.titlebutton,
|
||||
.titlebar .inline-toolbar GtkToolButton:only-child > .button.titlebutton,
|
||||
.inline-toolbar.toolbar GtkToolButton:backdrop:only-child > .button.flat,
|
||||
@@ -1206,20 +1242,24 @@ GtkComboBox.combobox-entry .titlebar .button.titlebutton,
|
||||
border-radius: 3px;
|
||||
border-style: solid; }
|
||||
|
||||
.linked.vertical > .entry, .linked.vertical > .entry:focus, .linked.vertical > .entry:insensitive, .linked.vertical > .entry:insensitive:backdrop, .linked.vertical > .entry:backdrop, .linked.vertical > .button, .linked.vertical > .button:hover, .linked.vertical > .button:active, .linked.vertical > .button:checked, .linked.vertical > .button:backdrop, .linked.vertical > GtkComboBoxText > .button,
|
||||
.linked.vertical > .entry, .linked.vertical > .entry:focus, .linked.vertical > .entry:insensitive, .linked.vertical > .entry:insensitive:backdrop, .linked.vertical > .entry:backdrop, .linked.vertical > .button, .header-bar .linked.vertical > .button.titlebutton,
|
||||
.titlebar .linked.vertical > .button.titlebutton, .linked.vertical > .button:hover, .linked.vertical > .button:active, .linked.vertical > .button:checked, .linked.vertical > .button:backdrop, .linked.vertical > GtkComboBoxText > .button,
|
||||
.linked.vertical > GtkComboBox > .button {
|
||||
border-left-style: solid;
|
||||
border-top-style: none;
|
||||
border-radius: 0; }
|
||||
|
||||
.linked.vertical > .entry:first-child, .linked.vertical > .button:first-child, .linked.vertical > GtkComboBoxText:first-child > .button,
|
||||
.linked.vertical > .entry:first-child, .linked.vertical > .button:first-child, .header-bar .linked.vertical > .button.titlebutton:first-child,
|
||||
.titlebar .linked.vertical > .button.titlebutton:first-child, .linked.vertical > GtkComboBoxText:first-child > .button,
|
||||
.linked.vertical > GtkComboBox:first-child > .button {
|
||||
border-style: solid;
|
||||
border-radius: 3px 3px 0 0; }
|
||||
.linked.vertical > .entry:last-child, .linked.vertical > .button:last-child, .linked.vertical > GtkComboBoxText:last-child > .button,
|
||||
.linked.vertical > .entry:last-child, .linked.vertical > .button:last-child, .header-bar .linked.vertical > .button.titlebutton:last-child,
|
||||
.titlebar .linked.vertical > .button.titlebutton:last-child, .linked.vertical > GtkComboBoxText:last-child > .button,
|
||||
.linked.vertical > GtkComboBox:last-child > .button {
|
||||
border-radius: 0 0 3px 3px; }
|
||||
.linked.vertical > .entry:only-child, .linked.vertical > .button:only-child, .linked.vertical > GtkComboBoxText:only-child > .button,
|
||||
.linked.vertical > .entry:only-child, .linked.vertical > .button:only-child, .header-bar .linked.vertical > .button.titlebutton:only-child,
|
||||
.titlebar .linked.vertical > .button.titlebutton:only-child, .linked.vertical > GtkComboBoxText:only-child > .button,
|
||||
.linked.vertical > GtkComboBox:only-child > .button {
|
||||
border-radius: 3px;
|
||||
border-style: solid; }
|
||||
@@ -1430,7 +1470,9 @@ GtkColorButton.button, .header-bar GtkColorButton.button.titlebutton,
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.spinbutton.vertical .button:first-child:insensitive > .label, .spinbutton.vertical:dir(rtl) .button:first-child:insensitive > .label {
|
||||
.spinbutton.vertical .button:first-child:insensitive > .label, .spinbutton.vertical .header-bar .button.titlebutton:first-child:insensitive > .label,
|
||||
.spinbutton.vertical .titlebar .button.titlebutton:first-child:insensitive > .label, .spinbutton.vertical:dir(rtl) .button:first-child:insensitive > .label, .spinbutton.vertical:dir(rtl) .header-bar .button.titlebutton:first-child:insensitive > .label,
|
||||
.spinbutton.vertical:dir(rtl) .titlebar .button.titlebutton:first-child:insensitive > .label {
|
||||
color: inherit; }
|
||||
.spinbutton.vertical .button:first-child:backdrop, .spinbutton.vertical:dir(rtl) .button:first-child:backdrop {
|
||||
color: #8d9091;
|
||||
@@ -1470,7 +1512,9 @@ GtkColorButton.button, .header-bar GtkColorButton.button.titlebutton,
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px white; }
|
||||
.spinbutton.vertical .button:last-child:insensitive > .label, .spinbutton.vertical:dir(rtl) .button:last-child:insensitive > .label {
|
||||
.spinbutton.vertical .button:last-child:insensitive > .label, .spinbutton.vertical .header-bar .button.titlebutton:last-child:insensitive > .label,
|
||||
.spinbutton.vertical .titlebar .button.titlebutton:last-child:insensitive > .label, .spinbutton.vertical:dir(rtl) .button:last-child:insensitive > .label, .spinbutton.vertical:dir(rtl) .header-bar .button.titlebutton:last-child:insensitive > .label,
|
||||
.spinbutton.vertical:dir(rtl) .titlebar .button.titlebutton:last-child:insensitive > .label {
|
||||
color: inherit; }
|
||||
.spinbutton.vertical .button:last-child:backdrop, .spinbutton.vertical:dir(rtl) .button:last-child:backdrop {
|
||||
color: #8d9091;
|
||||
@@ -1486,7 +1530,9 @@ GtkColorButton.button, .header-bar GtkColorButton.button.titlebutton,
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(255, 255, 255, 0); }
|
||||
.spinbutton.vertical .button:backdrop:insensitive > .label, .spinbutton.vertical:dir(rtl) .button:backdrop:insensitive > .label {
|
||||
.spinbutton.vertical .button:backdrop:insensitive > .label, .spinbutton.vertical .header-bar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.spinbutton.vertical .titlebar .button.titlebutton:backdrop:insensitive > .label, .spinbutton.vertical:dir(rtl) .button:backdrop:insensitive > .label, .spinbutton.vertical:dir(rtl) .header-bar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.spinbutton.vertical:dir(rtl) .titlebar .button.titlebutton:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.spinbutton.vertical.entry, .spinbutton.vertical:dir(rtl).entry {
|
||||
border-radius: 0;
|
||||
@@ -1693,11 +1739,13 @@ GtkComboBox {
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(164, 199, 236, 0);
|
||||
border-color: #184472; }
|
||||
.titlebar.selection-mode .button:backdrop:insensitive > .label, .titlebar.selection-mode .button.flat:backdrop:insensitive > .label,
|
||||
.titlebar.selection-mode .button:backdrop:insensitive > .label, .titlebar.selection-mode .header-bar .button.titlebutton:backdrop:insensitive > .label, .titlebar.selection-mode .button.flat:backdrop:insensitive > .label, .titlebar.selection-mode .header-bar .titlebutton.button:backdrop:insensitive > .label,
|
||||
.titlebar.selection-mode .titlebutton.button:backdrop:insensitive > .label,
|
||||
.header-bar.selection-mode .button:backdrop:insensitive > .label,
|
||||
.header-bar.selection-mode .titlebar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.header-bar.selection-mode .button.flat:backdrop:insensitive > .label,
|
||||
.header-bar.selection-mode .titlebutton.button:backdrop:insensitive > .label {
|
||||
.header-bar.selection-mode .titlebutton.button:backdrop:insensitive > .label,
|
||||
.header-bar.selection-mode .titlebar .titlebutton.button:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.titlebar.selection-mode .button:backdrop:insensitive:active, .titlebar.selection-mode .button:backdrop:insensitive:checked, .titlebar.selection-mode .button.flat:backdrop:insensitive:active,
|
||||
.titlebar.selection-mode .titlebutton.button:backdrop:insensitive:active, .titlebar.selection-mode .button.flat:backdrop:insensitive:checked,
|
||||
@@ -1713,15 +1761,19 @@ GtkComboBox {
|
||||
background-image: linear-gradient(to bottom, #5093da);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(164, 199, 236, 0);
|
||||
border-color: #184472; }
|
||||
.titlebar.selection-mode .button:backdrop:insensitive:active > .label, .titlebar.selection-mode .button:backdrop:insensitive:checked > .label, .titlebar.selection-mode .button.flat:backdrop:insensitive:active > .label,
|
||||
.titlebar.selection-mode .titlebutton.button:backdrop:insensitive:active > .label, .titlebar.selection-mode .button.flat:backdrop:insensitive:checked > .label,
|
||||
.titlebar.selection-mode .button:backdrop:insensitive:active > .label, .titlebar.selection-mode .header-bar .button.titlebutton:backdrop:insensitive:active > .label, .titlebar.selection-mode .button:backdrop:insensitive:checked > .label, .titlebar.selection-mode .header-bar .button.titlebutton:backdrop:insensitive:checked > .label, .titlebar.selection-mode .button.flat:backdrop:insensitive:active > .label, .titlebar.selection-mode .header-bar .titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.titlebar.selection-mode .titlebutton.button:backdrop:insensitive:active > .label, .titlebar.selection-mode .button.flat:backdrop:insensitive:checked > .label, .titlebar.selection-mode .header-bar .titlebutton.button:backdrop:insensitive:checked > .label,
|
||||
.titlebar.selection-mode .titlebutton.button:backdrop:insensitive:checked > .label,
|
||||
.header-bar.selection-mode .button:backdrop:insensitive:active > .label,
|
||||
.header-bar.selection-mode .titlebar .button.titlebutton:backdrop:insensitive:active > .label,
|
||||
.header-bar.selection-mode .button:backdrop:insensitive:checked > .label,
|
||||
.header-bar.selection-mode .titlebar .button.titlebutton:backdrop:insensitive:checked > .label,
|
||||
.header-bar.selection-mode .button.flat:backdrop:insensitive:active > .label,
|
||||
.header-bar.selection-mode .titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.header-bar.selection-mode .titlebar .titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.header-bar.selection-mode .button.flat:backdrop:insensitive:checked > .label,
|
||||
.header-bar.selection-mode .titlebutton.button:backdrop:insensitive:checked > .label {
|
||||
.header-bar.selection-mode .titlebutton.button:backdrop:insensitive:checked > .label,
|
||||
.header-bar.selection-mode .titlebar .titlebutton.button:backdrop:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
.titlebar.selection-mode .button.flat:backdrop,
|
||||
.titlebar.selection-mode .titlebutton.button:backdrop, .titlebar.selection-mode .button.flat:insensitive,
|
||||
@@ -1747,8 +1799,9 @@ GtkComboBox {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px #a4c7ec; }
|
||||
.titlebar.selection-mode .button:insensitive > .label,
|
||||
.header-bar.selection-mode .button:insensitive > .label {
|
||||
.titlebar.selection-mode .button:insensitive > .label, .titlebar.selection-mode .header-bar .button.titlebutton:insensitive > .label,
|
||||
.header-bar.selection-mode .button:insensitive > .label,
|
||||
.header-bar.selection-mode .titlebar .button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.titlebar.selection-mode .button:insensitive:active, .titlebar.selection-mode .button:insensitive:checked,
|
||||
.header-bar.selection-mode .button:insensitive:active,
|
||||
@@ -1757,9 +1810,11 @@ GtkComboBox {
|
||||
border-color: #1c5187;
|
||||
background-image: linear-gradient(to bottom, #4a8cd1, #5093da);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px #a4c7ec; }
|
||||
.titlebar.selection-mode .button:insensitive:active > .label, .titlebar.selection-mode .button:insensitive:checked > .label,
|
||||
.titlebar.selection-mode .button:insensitive:active > .label, .titlebar.selection-mode .header-bar .button.titlebutton:insensitive:active > .label, .titlebar.selection-mode .button:insensitive:checked > .label, .titlebar.selection-mode .header-bar .button.titlebutton:insensitive:checked > .label,
|
||||
.header-bar.selection-mode .button:insensitive:active > .label,
|
||||
.header-bar.selection-mode .button:insensitive:checked > .label {
|
||||
.header-bar.selection-mode .titlebar .button.titlebutton:insensitive:active > .label,
|
||||
.header-bar.selection-mode .button:insensitive:checked > .label,
|
||||
.header-bar.selection-mode .titlebar .button.titlebutton:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
.titlebar.selection-mode .button.suggested-action,
|
||||
.header-bar.selection-mode .button.suggested-action {
|
||||
@@ -1800,8 +1855,9 @@ GtkComboBox {
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px #a4c7ec;
|
||||
border-color: #184472; }
|
||||
.titlebar.selection-mode .button.suggested-action:insensitive > .label,
|
||||
.header-bar.selection-mode .button.suggested-action:insensitive > .label {
|
||||
.titlebar.selection-mode .button.suggested-action:insensitive > .label, .titlebar.selection-mode .header-bar .suggested-action.button.titlebutton:insensitive > .label,
|
||||
.header-bar.selection-mode .button.suggested-action:insensitive > .label,
|
||||
.header-bar.selection-mode .titlebar .suggested-action.button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.titlebar.selection-mode .button.suggested-action:backdrop,
|
||||
.header-bar.selection-mode .button.suggested-action:backdrop {
|
||||
@@ -1821,8 +1877,9 @@ GtkComboBox {
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(164, 199, 236, 0);
|
||||
border-color: #184472; }
|
||||
.titlebar.selection-mode .button.suggested-action:backdrop:insensitive > .label,
|
||||
.header-bar.selection-mode .button.suggested-action:backdrop:insensitive > .label {
|
||||
.titlebar.selection-mode .button.suggested-action:backdrop:insensitive > .label, .titlebar.selection-mode .header-bar .suggested-action.button.titlebutton:backdrop:insensitive > .label,
|
||||
.header-bar.selection-mode .button.suggested-action:backdrop:insensitive > .label,
|
||||
.header-bar.selection-mode .titlebar .suggested-action.button.titlebutton:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.titlebar.selection-mode .selection-menu, .titlebar.selection-mode .selection-menu:backdrop,
|
||||
.header-bar.selection-mode .selection-menu,
|
||||
@@ -3734,7 +3791,8 @@ GtkPlacesSidebar.sidebar .view .separator:backdrop {
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0);
|
||||
border-color: #184472; }
|
||||
.list-row:selected .button:backdrop:insensitive > .label, .list-row:selected .button.flat:backdrop:insensitive > .label, .list-row:selected .header-bar .titlebutton.button:backdrop:insensitive > .label, .header-bar .list-row:selected .titlebutton.button:backdrop:insensitive > .label,
|
||||
.list-row:selected .button:backdrop:insensitive > .label, .list-row:selected .header-bar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.list-row:selected .titlebar .button.titlebutton:backdrop:insensitive > .label, .list-row:selected .button.flat:backdrop:insensitive > .label, .list-row:selected .header-bar .titlebutton.button:backdrop:insensitive > .label, .header-bar .list-row:selected .titlebutton.button:backdrop:insensitive > .label,
|
||||
.list-row:selected .titlebar .titlebutton.button:backdrop:insensitive > .label,
|
||||
.titlebar .list-row:selected .titlebutton.button:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
@@ -3748,7 +3806,9 @@ GtkPlacesSidebar.sidebar .view .separator:backdrop {
|
||||
background-image: linear-gradient(to bottom, #e7e7e7);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0);
|
||||
border-color: #184472; }
|
||||
.list-row:selected .button:backdrop:insensitive:active > .label, .list-row:selected .button:backdrop:insensitive:checked > .label, .list-row:selected .button.flat:backdrop:insensitive:active > .label, .list-row:selected .header-bar .titlebutton.button:backdrop:insensitive:active > .label, .header-bar .list-row:selected .titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.list-row:selected .button:backdrop:insensitive:active > .label, .list-row:selected .header-bar .button.titlebutton:backdrop:insensitive:active > .label,
|
||||
.list-row:selected .titlebar .button.titlebutton:backdrop:insensitive:active > .label, .list-row:selected .button:backdrop:insensitive:checked > .label, .list-row:selected .header-bar .button.titlebutton:backdrop:insensitive:checked > .label,
|
||||
.list-row:selected .titlebar .button.titlebutton:backdrop:insensitive:checked > .label, .list-row:selected .button.flat:backdrop:insensitive:active > .label, .list-row:selected .header-bar .titlebutton.button:backdrop:insensitive:active > .label, .header-bar .list-row:selected .titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.list-row:selected .titlebar .titlebutton.button:backdrop:insensitive:active > .label,
|
||||
.titlebar .list-row:selected .titlebutton.button:backdrop:insensitive:active > .label, .list-row:selected .button.flat:backdrop:insensitive:checked > .label, .list-row:selected .header-bar .titlebutton.button:backdrop:insensitive:checked > .label, .header-bar .list-row:selected .titlebutton.button:backdrop:insensitive:checked > .label,
|
||||
.list-row:selected .titlebar .titlebutton.button:backdrop:insensitive:checked > .label,
|
||||
@@ -3772,14 +3832,17 @@ GtkPlacesSidebar.sidebar .view .separator:backdrop {
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0);
|
||||
border-color: #184472; }
|
||||
.list-row:selected .button:insensitive > .label {
|
||||
.list-row:selected .button:insensitive > .label, .list-row:selected .header-bar .button.titlebutton:insensitive > .label,
|
||||
.list-row:selected .titlebar .button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.list-row:selected .button:insensitive:active, .list-row:selected .button:insensitive:checked {
|
||||
color: #8d9091;
|
||||
border-color: #a1a1a1;
|
||||
background-image: linear-gradient(to bottom, #ebebeb, #f4f4f4);
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.list-row:selected .button:insensitive:active > .label, .list-row:selected .button:insensitive:checked > .label {
|
||||
.list-row:selected .button:insensitive:active > .label, .list-row:selected .header-bar .button.titlebutton:insensitive:active > .label,
|
||||
.list-row:selected .titlebar .button.titlebutton:insensitive:active > .label, .list-row:selected .button:insensitive:checked > .label, .list-row:selected .header-bar .button.titlebutton:insensitive:checked > .label,
|
||||
.list-row:selected .titlebar .button.titlebutton:insensitive:checked > .label {
|
||||
color: inherit; }
|
||||
|
||||
.list-row, list-row.button, .header-bar list-row.button.titlebutton,
|
||||
@@ -3955,7 +4018,8 @@ GtkCalendar {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.message-dialog.csd .dialog-action-area .button:insensitive > .label {
|
||||
.message-dialog.csd .dialog-action-area .button:insensitive > .label, .message-dialog.csd .dialog-action-area .header-bar .button.titlebutton:insensitive > .label,
|
||||
.message-dialog.csd .dialog-action-area .titlebar .button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.message-dialog.csd .dialog-action-area .button:backdrop {
|
||||
color: #8d9091;
|
||||
@@ -3971,7 +4035,8 @@ GtkCalendar {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.message-dialog.csd .dialog-action-area .button:backdrop:insensitive > .label {
|
||||
.message-dialog.csd .dialog-action-area .button:backdrop:insensitive > .label, .message-dialog.csd .dialog-action-area .header-bar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.message-dialog.csd .dialog-action-area .titlebar .button.titlebutton:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.message-dialog.csd .dialog-action-area .button.suggested-action {
|
||||
color: white;
|
||||
@@ -4011,7 +4076,8 @@ GtkCalendar {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.message-dialog.csd .dialog-action-area .button.suggested-action:backdrop:insensitive > .label {
|
||||
.message-dialog.csd .dialog-action-area .button.suggested-action:backdrop:insensitive > .label, .message-dialog.csd .dialog-action-area .header-bar .suggested-action.button.titlebutton:backdrop:insensitive > .label,
|
||||
.message-dialog.csd .dialog-action-area .titlebar .suggested-action.button.titlebutton:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.message-dialog.csd .dialog-action-area .button.suggested-action:insensitive {
|
||||
color: #8d9091;
|
||||
@@ -4020,7 +4086,8 @@ GtkCalendar {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.message-dialog.csd .dialog-action-area .button.suggested-action:insensitive > .label {
|
||||
.message-dialog.csd .dialog-action-area .button.suggested-action:insensitive > .label, .message-dialog.csd .dialog-action-area .header-bar .suggested-action.button.titlebutton:insensitive > .label,
|
||||
.message-dialog.csd .dialog-action-area .titlebar .suggested-action.button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.message-dialog.csd .dialog-action-area .button.destructive-action {
|
||||
color: white;
|
||||
@@ -4060,7 +4127,8 @@ GtkCalendar {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.message-dialog.csd .dialog-action-area .button.destructive-action:backdrop:insensitive > .label {
|
||||
.message-dialog.csd .dialog-action-area .button.destructive-action:backdrop:insensitive > .label, .message-dialog.csd .dialog-action-area .header-bar .destructive-action.button.titlebutton:backdrop:insensitive > .label,
|
||||
.message-dialog.csd .dialog-action-area .titlebar .destructive-action.button.titlebutton:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.message-dialog.csd .dialog-action-area .button.destructive-action:insensitive {
|
||||
color: #8d9091;
|
||||
@@ -4069,7 +4137,8 @@ GtkCalendar {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.message-dialog.csd .dialog-action-area .button.destructive-action:insensitive > .label {
|
||||
.message-dialog.csd .dialog-action-area .button.destructive-action:insensitive > .label, .message-dialog.csd .dialog-action-area .header-bar .destructive-action.button.titlebutton:insensitive > .label,
|
||||
.message-dialog.csd .dialog-action-area .titlebar .destructive-action.button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.message-dialog.csd .dialog-action-area .button, .message-dialog.csd .dialog-action-area .button:hover, .message-dialog.csd .dialog-action-area .button:active, .message-dialog.csd .dialog-action-area .button:insensitive, .message-dialog.csd .dialog-action-area .button:backdrop, .message-dialog.csd .dialog-action-area .button:backdrop:insensitive, .message-dialog.csd .dialog-action-area .button.suggested-action, .message-dialog.csd .dialog-action-area .button.suggested-action:hover, .message-dialog.csd .dialog-action-area .button.suggested-action:active, .message-dialog.csd .dialog-action-area .button.suggested-action:backdrop, .message-dialog.csd .dialog-action-area .button.suggested-action:backdrop:insensitive, .message-dialog.csd .dialog-action-area .button.suggested-action:insensitive, .message-dialog.csd .dialog-action-area .button.destructive-action, .message-dialog.csd .dialog-action-area .button.destructive-action:hover, .message-dialog.csd .dialog-action-area .button.destructive-action:active, .message-dialog.csd .dialog-action-area .button.destructive-action:backdrop, .message-dialog.csd .dialog-action-area .button.destructive-action:backdrop:insensitive, .message-dialog.csd .dialog-action-area .button.destructive-action:insensitive {
|
||||
border-left-style: solid;
|
||||
@@ -4223,10 +4292,17 @@ GtkInfoBar {
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
|
||||
.info .button:insensitive > .label,
|
||||
.info .button:insensitive > .label, .info .header-bar .button.titlebutton:insensitive > .label,
|
||||
.info .titlebar .button.titlebutton:insensitive > .label,
|
||||
.question .button:insensitive > .label,
|
||||
.question .header-bar .button.titlebutton:insensitive > .label,
|
||||
.question .titlebar .button.titlebutton:insensitive > .label,
|
||||
.warning .button:insensitive > .label,
|
||||
.error .button:insensitive > .label {
|
||||
.warning .header-bar .button.titlebutton:insensitive > .label,
|
||||
.warning .titlebar .button.titlebutton:insensitive > .label,
|
||||
.error .button:insensitive > .label,
|
||||
.error .header-bar .button.titlebutton:insensitive > .label,
|
||||
.error .titlebar .button.titlebutton:insensitive > .label {
|
||||
color: inherit; }
|
||||
.info .button:backdrop,
|
||||
.question .button:backdrop,
|
||||
@@ -4250,10 +4326,17 @@ GtkInfoBar {
|
||||
icon-shadow: none;
|
||||
box-shadow: inset 0 1px rgba(255, 255, 255, 0);
|
||||
border-color: #1c5187; }
|
||||
.info .button:backdrop:insensitive > .label,
|
||||
.info .button:backdrop:insensitive > .label, .info .header-bar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.info .titlebar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.question .button:backdrop:insensitive > .label,
|
||||
.question .header-bar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.question .titlebar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.warning .button:backdrop:insensitive > .label,
|
||||
.error .button:backdrop:insensitive > .label {
|
||||
.warning .header-bar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.warning .titlebar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.error .button:backdrop:insensitive > .label,
|
||||
.error .header-bar .button.titlebutton:backdrop:insensitive > .label,
|
||||
.error .titlebar .button.titlebutton:backdrop:insensitive > .label {
|
||||
color: inherit; }
|
||||
.info .label:selected,
|
||||
.info .label:selected:focus,
|
||||
@@ -4417,6 +4500,12 @@ GtkVolumeButton.button, .header-bar GtkVolumeButton.button.titlebutton,
|
||||
.window-frame.csd.message-dialog {
|
||||
border-radius: 7px;
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.13); }
|
||||
.window-frame.solid-csd {
|
||||
border-radius: 0;
|
||||
margin: 4px;
|
||||
background-color: #ededed;
|
||||
border: solid 1px #a8a8a8;
|
||||
box-shadow: none; }
|
||||
|
||||
.header-bar .titlebutton.button,
|
||||
.titlebar .titlebutton.button {
|
||||
@@ -4441,8 +4530,7 @@ GtkVolumeButton.button, .header-bar GtkVolumeButton.button.titlebutton,
|
||||
outline-color: rgba(255, 255, 255, 0.3); }
|
||||
.view:backdrop:selected, GtkCalendar:backdrop:selected, .label:backdrop:selected, .grid-child:backdrop:selected, .entry:backdrop:selected, .menuitem.button.flat:backdrop:selected, .header-bar .menuitem.titlebutton.button:backdrop:selected,
|
||||
.titlebar .menuitem.titlebutton.button:backdrop:selected, .list-row:backdrop:selected, .sidebar:backdrop:selected, GtkPlacesSidebar.sidebar .view:backdrop:selected, GtkPlacesSidebar.sidebar GtkCalendar:backdrop:selected {
|
||||
color: #ffffff;
|
||||
background-color: #929292; }
|
||||
color: #ffffff; }
|
||||
|
||||
/* Decouple the font of context menus from their entry/textview */
|
||||
.touch-selection,
|
||||
|
||||
@@ -583,7 +583,7 @@ $_dot_color: $selected_bg_color;
|
||||
&:backdrop {
|
||||
color: $backdrop_fg_color;
|
||||
@extend %undecorated_button;
|
||||
&:hover { color: $selected_fg_color; background-color: selected_bg_color; }
|
||||
&:hover { color: $selected_fg_color; background-color: $selected_bg_color; }
|
||||
}
|
||||
&:insensitive { color: $insensitive_fg_color; }
|
||||
}
|
||||
@@ -2260,6 +2260,13 @@ GtkColorChooserWidget #add-color-button {
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
&.solid-csd {
|
||||
border-radius: 0;
|
||||
margin: 4px;
|
||||
background-color: $backdrop_bg_color;
|
||||
border: solid 1px $backdrop_borders_color;
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
// Window Close button
|
||||
|
||||
@@ -175,8 +175,7 @@
|
||||
box-shadow: none; }
|
||||
|
||||
.label:insensitive, .label:backdrop:insensitive {
|
||||
color: #7f7f7f;
|
||||
background-color: white; }
|
||||
color: #7f7f7f; }
|
||||
|
||||
/*********************
|
||||
* Spinner Animation *
|
||||
@@ -782,7 +781,7 @@
|
||||
color: #000; }
|
||||
.menuitem.button.flat:backdrop:hover {
|
||||
color: #fff;
|
||||
background-color: selected_bg_color; }
|
||||
background-color: #000; }
|
||||
.menuitem.button.flat:insensitive {
|
||||
color: #7f7f7f; }
|
||||
|
||||
@@ -2512,6 +2511,12 @@ GtkColorChooserWidget #add-color-button {
|
||||
.window-frame.csd.tooltip {
|
||||
border-radius: 5px;
|
||||
box-shadow: none; }
|
||||
.window-frame.solid-csd {
|
||||
border-radius: 0;
|
||||
margin: 4px;
|
||||
background-color: #fff;
|
||||
border: solid 1px #8b8b8b;
|
||||
box-shadow: none; }
|
||||
|
||||
.button.titlebutton {
|
||||
padding: 8px;
|
||||
|
||||
@@ -872,3 +872,12 @@ GtkCalendar.button:hover {
|
||||
.window-frame:backdrop {
|
||||
box-shadow: 0 2px 5px 1px alpha(black, 0.5);
|
||||
}
|
||||
|
||||
.window-frame.solid-csd {
|
||||
border-radius: 0;
|
||||
margin: 2px;
|
||||
background-color: @bg_color;
|
||||
border-style: outset;
|
||||
border-width: 2px;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
@@ -78,22 +78,13 @@
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="browse_new_folder_button">
|
||||
<property name="tooltip-text" translatable="yes">Create Folder</property>
|
||||
<object class="GtkMenuButton" id="browse_new_folder_button">
|
||||
<property name="label" translatable="yes">Create _Folder</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<signal name="clicked" handler="new_folder_button_clicked" swapped="no"/>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="icon-name">list-add-symbolic</property>
|
||||
<property name="icon-size">1</property>
|
||||
</object>
|
||||
</child>
|
||||
<property name="popover">new_folder_popover</property>
|
||||
<signal name="notify::active" handler="new_folder_popover_active"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
@@ -226,8 +217,6 @@
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="list_name_renderer">
|
||||
<property name="ellipsize">end</property>
|
||||
<signal name="edited" handler="renderer_edited_cb" swapped="no"/>
|
||||
<signal name="editing-canceled" handler="renderer_editing_canceled_cb" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
@@ -372,4 +361,69 @@
|
||||
<widget name="browse_new_folder_button"/>
|
||||
</widgets>
|
||||
</object>
|
||||
<object class="GtkPopover" id="new_folder_popover">
|
||||
<property name="modal">True</property>
|
||||
<child>
|
||||
<object class="GtkGrid">
|
||||
<property name="visible">True</property>
|
||||
<property name="margin">10</property>
|
||||
<property name="column-spacing">6</property>
|
||||
<property name="row-spacing">6</property>
|
||||
<property name="row-homogeneous">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Folder Name</property>
|
||||
<property name="halign">start</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">0</property>
|
||||
<property name="width">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="new_folder_name_entry">
|
||||
<property name="visible">True</property>
|
||||
<property name="width-chars">25</property>
|
||||
<signal name="changed" handler="new_folder_name_changed"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="new_folder_create_button">
|
||||
<property name="visible">True</property>
|
||||
<property name="sensitive">False</property>
|
||||
<property name="label" translatable="yes">_Create</property>
|
||||
<property name="use_underline">True</property>
|
||||
<signal name="clicked" handler="new_folder_create_clicked"/>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="new_folder_error_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="halign">start</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">2</property>
|
||||
<property name="width">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
|
||||
@@ -1491,7 +1491,7 @@ build_cache (const gchar *path)
|
||||
opentmp:
|
||||
if ((fd = g_open (tmp_cache_path, O_WRONLY | O_CREAT | O_EXCL | O_TRUNC | _O_BINARY, mode)) == -1)
|
||||
{
|
||||
if (force_update && retry_count == 0)
|
||||
if (retry_count == 0)
|
||||
{
|
||||
retry_count++;
|
||||
g_remove (tmp_cache_path);
|
||||
|
||||
@@ -118,6 +118,7 @@ gtk/gtkcolorscale.c
|
||||
gtk/gtkcolorswatch.c
|
||||
gtk/gtkcombobox.c
|
||||
gtk/gtkcontainer.c
|
||||
gtk/gtkcssnode.c
|
||||
gtk/gtkcssprovider.c
|
||||
gtk/gtkcssshorthandproperty.c
|
||||
gtk/gtkcssstyleproperty.c
|
||||
|
||||
@@ -60,6 +60,7 @@ gtk/inspector/classes-list.ui
|
||||
gtk/inspector/classes-list.ui.h
|
||||
gtk/inspector/css-editor.ui
|
||||
gtk/inspector/css-editor.ui.h
|
||||
gtk/inspector/css-node-tree.ui
|
||||
gtk/inspector/data-list.ui
|
||||
gtk/inspector/data-list.ui.h
|
||||
gtk/inspector/general.ui
|
||||
@@ -167,6 +168,8 @@ testsuite/reftests/border-image-url.ref.ui
|
||||
testsuite/reftests/border-image-url-scaled.ref.ui
|
||||
testsuite/reftests/border-image-url-scaled.ui
|
||||
testsuite/reftests/border-image-url.ui
|
||||
testsuite/reftests/box-order.ref.ui
|
||||
testsuite/reftests/box-order.ui
|
||||
testsuite/reftests/box-packing.ui
|
||||
testsuite/reftests/box-pseudo-classes.ref.ui
|
||||
testsuite/reftests/box-pseudo-classes.ui
|
||||
|
||||
+2310
-2343
File diff suppressed because it is too large
Load Diff
+2268
-2332
File diff suppressed because it is too large
Load Diff
+2208
-2208
File diff suppressed because it is too large
Load Diff
+2261
-2229
File diff suppressed because it is too large
Load Diff
+2206
-2206
File diff suppressed because it is too large
Load Diff
+2216
-2209
File diff suppressed because it is too large
Load Diff
+930
-1130
File diff suppressed because it is too large
Load Diff
+331
-294
File diff suppressed because it is too large
Load Diff
+3929
-2975
File diff suppressed because it is too large
Load Diff
+324
-292
File diff suppressed because it is too large
Load Diff
+2414
-2169
File diff suppressed because it is too large
Load Diff
+2699
-2954
File diff suppressed because it is too large
Load Diff
@@ -118,6 +118,7 @@ gtk/gtkcolorscale.c
|
||||
gtk/gtkcolorswatch.c
|
||||
gtk/gtkcombobox.c
|
||||
gtk/gtkcontainer.c
|
||||
gtk/gtkcssnode.c
|
||||
gtk/gtkcssprovider.c
|
||||
gtk/gtkcssshorthandproperty.c
|
||||
gtk/gtkcssstyleproperty.c
|
||||
@@ -289,6 +290,7 @@ gtk/inspector/classes-list.c
|
||||
gtk/inspector/classes-list.ui
|
||||
gtk/inspector/css-editor.c
|
||||
gtk/inspector/css-editor.ui
|
||||
gtk/inspector/css-node-tree.ui
|
||||
gtk/inspector/data-list.ui
|
||||
gtk/inspector/general.c
|
||||
gtk/inspector/general.ui
|
||||
|
||||
@@ -94,6 +94,8 @@ testsuite/reftests/border-image-url.ref.ui
|
||||
testsuite/reftests/border-image-url-scaled.ref.ui
|
||||
testsuite/reftests/border-image-url-scaled.ui
|
||||
testsuite/reftests/border-image-url.ui
|
||||
testsuite/reftests/box-order.ref.ui
|
||||
testsuite/reftests/box-order.ui
|
||||
testsuite/reftests/box-packing.ui
|
||||
testsuite/reftests/box-pseudo-classes.ref.ui
|
||||
testsuite/reftests/box-pseudo-classes.ui
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user