Compare commits

..

1 Commits

Author SHA1 Message Date
Matthias Clasen
baf90f0c04 A somewhat working blur shader
This is a very direct implementation of a Gaussian blur,
without any optimizations.
2017-09-04 22:33:27 -04:00
579 changed files with 29347 additions and 39500 deletions

147
NEWS
View File

@@ -1,150 +1,3 @@
Overview of Changes in GTK+ 3.92.0
==================================
* Drop autotools support. Meson 0.42.1 is now required
* Removed apis
- gdk_window_new_input
- gtk_widget_set_redraw_on_alloc
- gtk_widget_get_{border,content,margin}_allocation
- gtk_container_propagate_draw
- deprecated CSS properties and syntaxes
* Implement most of CSS3 font-variant
* Add an Emoji chooser to GtkEntry
* Add new input hints for Emoji input
* Remaining widgets have been ported to GtkSnapshot
* Non-windowed widgets are now allowed to have a size of 0x0
* Add support for native file choosers on older OS X versions
* Convert GtkLabel and GtkEntry to use GSK, introducing a new
block-cursor css subnode for GtkEntry
* Add support for libcloudproviders in GtkPlacesSidebar
* Add a way for GtkOverlay to blur behind children
* Input handling changes
- GdkEvent has new accessors for fields
- Traditional event signals (eg ::key-press-event) are now
emitted from a legacy event controller
- Most widgets inside gtk have stopped using traditional event signals
- Seat.grab(GDK_SEAT_CAPABILITY_ALL_POINTING) now includes touch events
* Allow tiled windows to be resized. Under wayland, this uses version 2
of the gtk-shell protocol. Under X, it uses the _GTK_EDGE_CONSTRAINTS
property
* GSK:
- Add gsk_text_node_new
- Add a glyph cache for the Vulkan backend
- Add gsk_blur_node_new
- Add gsk_cross_fade_node_new
- Implement blur for Vulkan
- Implement repeat nodes for Vulkan
- Add gsk_blend_mode_new
- the vulkan backend now uses multiple render passes, avoiding many
fallbacks to cairo rendering
- The profiling output for vulkan is now more useful, showing how many
pixels of fallback rendering and intermediate textures we consume
* Inspector:
- The recorder shows more useful information about render nodes
- Show gsk and vulkan information in the general tab
* Bugs fixed:
639931 gtk_application_add_window() docs should mention window destruction
644248 stylecontext: add a raised style class
705640 GtkWindow incorrectly requires a default screen
766909 Tooltip of the eject button is a bit confusing - or just missing
773299 Ensure GTK+-4.x builds and works on Windows (MSVC in particular)
775074 GtkScrolledWindow does not disconnect all GtkAdjustment signal handl...
775126 memory leak in gdk_wayland_window_ensure_cairo_surface
778382 gtk_css_static_style_get_default doesn't check for a null setting
778811 Enter submenus when activating their parent item
780750 Shift + click in GtkEntry doesn't select
780758 flowbox: bind_model passes wrong reference to create_widget_func in...
781757 gdk_seat_grab() not working for touchscreen events
782981 meson fixes
783649 negative content width warning in GtkLevelbar
783669 Allow resizing tiled windows
784016 Crash in gnome-terminal due to calling a GdkDisplayClass vfunc on a...
784421 Tooltips: Fix docs/theming for custom tooltip windows
785210 meson: Support build on Windows (using Visual Studio at least)
785306 FileChooserNativeQuartz: two fixes
785736 textview: fix bug on DnD displaced limits of selection
786144 GtkInfoBar Example - Wrong at developer.gnome.org (looks like typo/...
786209 X11: GtkPopover positioning doesn't "avoid" CSD window shadows
786400 "Art pen" named "Grip pen" in the Gnome Control Center
786469 gdkwindow: Avoid re-setting the opaque region if it doesn't change
786485 Image upload broken on vulkan
786492 Incorrect scaling factor with Vulkan on Wayland
786553 Wrong example number in Gtk Tutorial
786613 Adwaita: provide a generic sidebar icon and label styling
786673 Wayland: Crash in GtkEntryCompletion
786885 Add explanatory tooltip to emoji icon
786931 rnc/rng files specify "class" as mandatory for objects, but the par...
786932 Let the "type-func" override the object's "class" attribute when ge...
786938 Emoji picker wrongly opens when clicking on primary icon too
786940 ::icon-pressed handler stays connected when setting :show-emoji-ico...
786956 EmojiChooser: Fix theming on Adwaita:dark, HighContrast, etc.
786960 Emoji chooser: don't show 'insert Emoji' item in emoji chooser cont...
786964 Emoji Chooser: Can't scroll clicking on the scroll bar
786966 Emoji chooser: unnecessary spacing b/w some rows in search result
787021 GtkFlowBox: the orthogonal orientation always requests the most siz...
787103 gtk3-widget-factory crashes on exit after inserting an emote on page3
787172 EmojiChooser: Improve selection of section buttons
787279 EmojiChooser: Hovered emoji become impossible to see in HighContras...
787302 gtk+-3.22.20/gtk/gtkmountoperation-x11.c:669:sanity check after use ?
787303 gtk+-3.22.20/gtk/gtknotebook.c: 2 * redundant conditions ?
787410 entry: fix memory leak
787416 build: Improve subproject support for builds
787444 The color-selection dialog which is opened by a GtkColorButton shou...
787531 The tick button is not/barely visible on light colors with Dark theme
787600 PlacesSidebar/SidebarRow: CloudProvider singleton/accounts are neve...
787757 Focus outline easily disappears around color chooser swatches
788230 Bump GLib version to 2.53.7
788458 (style) Array index 'i' is used before limits check.
* Translation updates:
Basque
Brazilian Portuguese
Catalan
Chinese (Taiwan)
Croatian
Czech
Danish
French
Friulian
Galician
German
Hungarian
Indonesian
Italian
Kazakh
Korean
Latvian
Lithuanian
Malayalam
Nepali
Persian
Polish
Romanian
Russian
Serbian
Serbian Latin
Slovak
Slovenian
Spanish
Swedish
Turkish
Overview of Changes in GTK+ 3.91.2
==================================

View File

@@ -45,7 +45,7 @@ show_action_dialog (GSimpleAction *action)
name);
g_signal_connect (dialog, "response",
G_CALLBACK (gtk_window_destroy), NULL);
G_CALLBACK (gtk_widget_destroy), NULL);
gtk_widget_show (dialog);
}
@@ -118,7 +118,7 @@ open_response_cb (GtkNativeDialog *dialog,
"Error loading file: \"%s\"",
error->message);
g_signal_connect (message_dialog, "response",
G_CALLBACK (gtk_window_destroy), NULL);
G_CALLBACK (gtk_widget_destroy), NULL);
gtk_widget_show (message_dialog);
g_error_free (error);
}
@@ -232,7 +232,7 @@ activate_quit (GSimpleAction *action,
win = list->data;
next = list->next;
gtk_window_destroy (GTK_WINDOW (win));
gtk_widget_destroy (GTK_WIDGET (win));
list = next;
}
@@ -475,14 +475,12 @@ demo_application_window_state_event (GtkWidget *widget,
{
DemoApplicationWindow *window = (DemoApplicationWindow *)widget;
gboolean res = GDK_EVENT_PROPAGATE;
GdkWindowState changed, new_state;
if (GTK_WIDGET_CLASS (demo_application_window_parent_class)->window_state_event)
res = GTK_WIDGET_CLASS (demo_application_window_parent_class)->window_state_event (widget, event);
gdk_event_get_window_state ((GdkEvent *)event, &changed, &new_state);
window->maximized = (new_state & GDK_WINDOW_STATE_MAXIMIZED) != 0;
window->fullscreen = (new_state & GDK_WINDOW_STATE_FULLSCREEN) != 0;
window->maximized = (event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED) != 0;
window->fullscreen = (event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN) != 0;
return res;
}

View File

@@ -33,6 +33,7 @@ on_name_vanished (GDBusConnection *connection,
if (placeholder)
{
gtk_widget_destroy (placeholder);
g_object_unref (placeholder);
placeholder = NULL;
}

View File

@@ -27,7 +27,7 @@ apply_changes_gradually (gpointer data)
else
{
/* Close automatically once changes are fully applied. */
gtk_window_destroy (GTK_WINDOW (assistant));
gtk_widget_destroy (assistant);
assistant = NULL;
return G_SOURCE_REMOVE;
}
@@ -45,7 +45,7 @@ on_assistant_close_cancel (GtkWidget *widget, gpointer data)
{
GtkWidget **assistant = (GtkWidget **) data;
gtk_window_destroy (GTK_WINDOW (*assistant));
gtk_widget_destroy (*assistant);
*assistant = NULL;
}
@@ -144,11 +144,8 @@ static void
create_page4 (GtkWidget *assistant)
{
progress_bar = gtk_progress_bar_new ();
gtk_widget_set_halign (progress_bar, GTK_ALIGN_FILL);
gtk_widget_set_halign (progress_bar, GTK_ALIGN_CENTER);
gtk_widget_set_valign (progress_bar, GTK_ALIGN_CENTER);
gtk_widget_set_hexpand (progress_bar, TRUE);
gtk_widget_set_margin_start (progress_bar, 40);
gtk_widget_set_margin_end (progress_bar, 40);
gtk_widget_show (progress_bar);
gtk_assistant_append_page (GTK_ASSISTANT (assistant), progress_bar);
@@ -192,7 +189,7 @@ do_assistant (GtkWidget *do_widget)
gtk_widget_show (assistant);
else
{
gtk_window_destroy (GTK_WINDOW (assistant));
gtk_widget_destroy (assistant);
assistant = NULL;
}

View File

@@ -12,7 +12,7 @@ quit_activate (GSimpleAction *action,
{
GtkWidget *window = user_data;
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
}
static void
@@ -118,7 +118,7 @@ do_builder (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -121,7 +121,7 @@ do_button_box (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -150,7 +150,7 @@ query_for_toplevel (GdkScreen *screen,
}
g_object_unref (cursor);
gtk_window_destroy (GTK_WINDOW (popup));
gtk_widget_destroy (popup);
gdk_flush (); /* Really release the grab */
return toplevel;
@@ -187,7 +187,7 @@ response_cb (GtkDialog *dialog,
if (response_id == GTK_RESPONSE_OK)
query_change_display (info);
else
gtk_window_destroy (GTK_WINDOW (dialog));
gtk_widget_destroy (GTK_WIDGET (dialog));
}
/* Called when the user clicks on "Open..." in the display
@@ -250,7 +250,7 @@ open_display_cb (GtkWidget *button,
}
}
gtk_window_destroy (GTK_WINDOW (dialog));
gtk_widget_destroy (dialog);
}
/* Called when the user clicks on the "Close" button in the
@@ -551,7 +551,7 @@ do_changedisplay (GtkWidget *do_widget)
}
else
{
gtk_window_destroy (GTK_WINDOW (info->window));
gtk_widget_destroy (info->window);
return NULL;
}
}

View File

@@ -172,16 +172,13 @@ paste_image (GtkMenuItem *item,
static gboolean
button_press (GtkWidget *widget,
GdkEventButton *event,
GdkEventButton *button,
gpointer data)
{
GtkWidget *menu;
GtkWidget *item;
guint button;
gdk_event_get_button ((GdkEvent *)event, &button);
if (button != GDK_BUTTON_SECONDARY)
if (button->button != GDK_BUTTON_SECONDARY)
return FALSE;
menu = gtk_menu_new ();
@@ -196,7 +193,7 @@ button_press (GtkWidget *widget,
gtk_widget_show (item);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
gtk_menu_popup_at_pointer (GTK_MENU (menu), (GdkEvent *) event);
gtk_menu_popup_at_pointer (GTK_MENU (menu), (GdkEvent *) button);
return TRUE;
}
@@ -324,7 +321,7 @@ do_clipboard (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -37,7 +37,7 @@ response_cb (GtkDialog *dialog,
gtk_widget_queue_draw (da);
}
gtk_window_destroy (GTK_WINDOW (dialog));
gtk_widget_destroy (GTK_WIDGET (dialog));
}
static void
@@ -73,7 +73,6 @@ do_colorsel (GtkWidget *do_widget)
gtk_window_set_screen (GTK_WINDOW (window),
gtk_widget_get_screen (do_widget));
gtk_window_set_title (GTK_WINDOW (window), "Color Chooser");
gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
g_signal_connect (window, "destroy",
G_CALLBACK (gtk_widget_destroyed), &window);
@@ -110,7 +109,7 @@ do_colorsel (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -435,7 +435,7 @@ do_combobox (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -63,7 +63,7 @@ do_css_accordion (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -112,7 +112,7 @@ do_css_basics (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -140,7 +140,7 @@ do_css_blendmodes (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -151,7 +151,7 @@ do_css_multiplebgs (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -118,7 +118,7 @@ do_css_pixbufs (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -140,7 +140,7 @@ do_css_shadows (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -154,7 +154,7 @@ do_cursors (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;

View File

@@ -232,9 +232,6 @@
<file>decor1.png</file>
<file>decor2.png</file>
</gresource>
<gresource prefix="/transparent">
<file>portland-rose.jpg</file>
</gresource>
<gresource prefix="/markup">
<file>markup.txt</file>
</gresource>

View File

@@ -26,7 +26,7 @@ message_dialog_clicked (GtkButton *button,
gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
"%d", i);
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_window_destroy (GTK_WINDOW (dialog));
gtk_widget_destroy (dialog);
i++;
}
@@ -88,7 +88,7 @@ interactive_dialog_clicked (GtkButton *button,
gtk_entry_set_text (GTK_ENTRY (entry2), gtk_entry_get_text (GTK_ENTRY (local_entry2)));
}
gtk_window_destroy (GTK_WINDOW (dialog));
gtk_widget_destroy (dialog);
}
GtkWidget *
@@ -163,7 +163,7 @@ do_dialog (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -20,8 +20,10 @@ static GtkWidget *window = NULL;
static cairo_surface_t *surface = NULL;
/* Create a new surface of the appropriate size to store our scribbles */
static void
create_surface (GtkWidget *widget)
static gboolean
scribble_configure_event (GtkWidget *widget,
GdkEventConfigure *event,
gpointer data)
{
GtkAllocation allocation;
cairo_t *cr;
@@ -30,9 +32,10 @@ create_surface (GtkWidget *widget)
cairo_surface_destroy (surface);
gtk_widget_get_allocation (widget, &allocation);
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
allocation.width,
allocation.height);
surface = gdk_window_create_similar_surface (gtk_widget_get_window (widget),
CAIRO_CONTENT_COLOR,
allocation.width,
allocation.height);
/* Initialize the surface to white */
cr = cairo_create (surface);
@@ -41,12 +44,9 @@ create_surface (GtkWidget *widget)
cairo_paint (cr);
cairo_destroy (cr);
}
static void
scribble_size_allocate (GtkWidget *widget)
{
create_surface (widget);
/* We've handled the configure event, no need for further processing. */
return TRUE;
}
/* Redraw the screen from the surface */
@@ -70,11 +70,6 @@ draw_brush (GtkWidget *widget,
GdkRectangle update_rect;
cairo_t *cr;
if (surface == NULL ||
cairo_image_surface_get_width (surface) != gtk_widget_get_allocated_width (widget) ||
cairo_image_surface_get_height (surface) != gtk_widget_get_allocated_height (widget))
create_surface (widget);
update_rect.x = x - 3;
update_rect.y = y - 3;
update_rect.width = 6;
@@ -88,7 +83,10 @@ draw_brush (GtkWidget *widget,
cairo_destroy (cr);
gtk_widget_queue_draw_area (widget, update_rect.x, update_rect.y, update_rect.width, update_rect.height);
/* Now invalidate the affected region of the drawing area. */
gdk_window_invalidate_rect (gtk_widget_get_window (widget),
&update_rect,
FALSE);
}
static gboolean
@@ -96,14 +94,11 @@ scribble_button_press_event (GtkWidget *widget,
GdkEventButton *event,
gpointer data)
{
double x, y;
guint button;
if (surface == NULL)
return FALSE; /* paranoia check, in case we haven't gotten a configure event */
gdk_event_get_button ((GdkEvent *)event, &button);
gdk_event_get_coords ((GdkEvent *)event, &x, &y);
if (button == GDK_BUTTON_PRIMARY)
draw_brush (widget, x, y);
if (event->button == GDK_BUTTON_PRIMARY)
draw_brush (widget, event->x, event->y);
/* We've handled the event, stop processing */
return TRUE;
@@ -114,11 +109,24 @@ scribble_motion_notify_event (GtkWidget *widget,
GdkEventMotion *event,
gpointer data)
{
double x, y;
int x, y;
GdkModifierType state;
gdk_event_get_state ((GdkEvent *)event, &state);
gdk_event_get_coords ((GdkEvent *)event, &x, &y);
if (surface == NULL)
return FALSE; /* paranoia check, in case we haven't gotten a configure event */
/* This call is very important; it requests the next motion event.
* If you don't call gdk_window_get_pointer() you'll only get
* a single motion event. The reason is that we specified
* GDK_POINTER_MOTION_HINT_MASK to gtk_widget_set_events().
* If we hadn't specified that, we could just use event->x, event->y
* as the pointer location. But we'd also get deluged in events.
* By requesting the next event as we handle the current one,
* we avoid getting a huge number of events faster than we
* can cope.
*/
gdk_window_get_device_position (event->window, event->device, &x, &y, &state);
if (state & GDK_BUTTON1_MASK)
draw_brush (widget, x, y);
@@ -217,7 +225,6 @@ do_drawingarea (GtkWidget *do_widget)
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_widget_set_vexpand (frame, TRUE);
gtk_box_pack_start (GTK_BOX (vbox), frame);
da = gtk_drawing_area_new ();
@@ -236,7 +243,6 @@ do_drawingarea (GtkWidget *do_widget)
gtk_box_pack_start (GTK_BOX (vbox), label);
frame = gtk_frame_new (NULL);
gtk_widget_set_vexpand (frame, TRUE);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_box_pack_start (GTK_BOX (vbox), frame);
@@ -246,10 +252,13 @@ do_drawingarea (GtkWidget *do_widget)
gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (da), scribble_draw, NULL, NULL);
gtk_container_add (GTK_CONTAINER (frame), da);
g_signal_connect (da, "size-allocate",
G_CALLBACK (scribble_size_allocate), NULL);
/* Signals used to handle backing surface */
g_signal_connect (da,"configure-event",
G_CALLBACK (scribble_configure_event), NULL);
/* Event signals */
g_signal_connect (da, "motion-notify-event",
G_CALLBACK (scribble_motion_notify_event), NULL);
g_signal_connect (da, "button-press-event",
@@ -259,7 +268,7 @@ do_drawingarea (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -373,7 +373,6 @@ do_editable_cells (GtkWidget *do_widget)
/* create tree view */
treeview = gtk_tree_view_new_with_model (items_model);
gtk_widget_set_vexpand (treeview, TRUE);
gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)),
GTK_SELECTION_SINGLE);
@@ -405,7 +404,7 @@ do_editable_cells (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -54,8 +54,7 @@ do_entry_buffer (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -85,7 +85,7 @@ do_entry_completion (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -120,7 +120,6 @@ update_axes_from_event (GdkEvent *event,
GdkDevice *device, *source_device;
GdkEventSequence *sequence;
GdkDeviceTool *tool;
GdkEventType type;
gdouble x, y;
AxesInfo *info;
@@ -128,15 +127,14 @@ update_axes_from_event (GdkEvent *event,
source_device = gdk_event_get_source_device (event);
sequence = gdk_event_get_event_sequence (event);
tool = gdk_event_get_device_tool (event);
type = gdk_event_get_event_type (event);
if (type == GDK_TOUCH_END ||
type == GDK_TOUCH_CANCEL)
if (event->type == GDK_TOUCH_END ||
event->type == GDK_TOUCH_CANCEL)
{
g_hash_table_remove (data->touch_info, sequence);
return;
}
else if (type == GDK_LEAVE_NOTIFY)
else if (event->type == GDK_LEAVE_NOTIFY)
{
g_hash_table_remove (data->pointer_info, device);
return;
@@ -174,24 +172,24 @@ update_axes_from_event (GdkEvent *event,
g_clear_pointer (&info->axes, g_free);
if (type == GDK_TOUCH_BEGIN ||
type == GDK_TOUCH_UPDATE)
if (event->type == GDK_TOUCH_BEGIN ||
event->type == GDK_TOUCH_UPDATE)
{
gboolean emulating_pointer;
gdk_event_get_touch_emulating_pointer (event, &emulating_pointer);
if (sequence && emulating_pointer)
if (sequence && event->touch.emulating_pointer)
g_hash_table_remove (data->pointer_info, device);
}
if (type == GDK_MOTION_NOTIFY ||
type == GDK_BUTTON_PRESS ||
type == GDK_BUTTON_RELEASE)
if (event->type == GDK_MOTION_NOTIFY)
{
gdouble *axes;
guint n_axes;
gdk_event_get_axes (event, &axes, &n_axes);
info->axes = g_memdup (axes, sizeof (double) * n_axes);
info->axes =
g_memdup (event->motion.axes,
sizeof (gdouble) * gdk_device_get_n_axes (source_device));
}
else if (event->type == GDK_BUTTON_PRESS ||
event->type == GDK_BUTTON_RELEASE)
{
info->axes =
g_memdup (event->button.axes,
sizeof (gdouble) * gdk_device_get_n_axes (source_device));
}
if (gdk_event_get_coords (event, &x, &y))
@@ -234,8 +232,7 @@ render_arrow (cairo_t *cr,
static void
draw_axes_info (cairo_t *cr,
AxesInfo *info,
int width,
int height)
GtkAllocation *allocation)
{
gdouble pressure, tilt_x, tilt_y, distance, wheel, rotation, slider;
GdkAxisFlags axes = gdk_device_get_axes (info->last_source);
@@ -246,9 +243,9 @@ draw_axes_info (cairo_t *cr,
gdk_cairo_set_source_rgba (cr, &info->color);
cairo_move_to (cr, 0, info->y);
cairo_line_to (cr, width, info->y);
cairo_line_to (cr, allocation->width, info->y);
cairo_move_to (cr, info->x, 0);
cairo_line_to (cr, info->x, height);
cairo_line_to (cr, info->x, allocation->height);
cairo_stroke (cr);
cairo_translate (cr, info->x, info->y);
@@ -468,27 +465,27 @@ draw_device_info (GtkWidget *widget,
g_string_free (string, TRUE);
}
static void
draw_cb (GtkDrawingArea *da,
cairo_t *cr,
int width,
int height,
gpointer user_data)
static gboolean
draw_cb (GtkWidget *widget,
cairo_t *cr,
gpointer user_data)
{
GtkWidget *widget = GTK_WIDGET (da);
EventData *data = user_data;
GtkAllocation allocation;
AxesInfo *info;
GHashTableIter iter;
gpointer key, value;
gint y = 0;
gtk_widget_get_allocation (widget, &allocation);
/* Draw Abs info */
g_hash_table_iter_init (&iter, data->pointer_info);
while (g_hash_table_iter_next (&iter, NULL, &value))
{
info = value;
draw_axes_info (cr, info, width, height);
draw_axes_info (cr, info, &allocation);
}
g_hash_table_iter_init (&iter, data->touch_info);
@@ -496,7 +493,7 @@ draw_cb (GtkDrawingArea *da,
while (g_hash_table_iter_next (&iter, NULL, &value))
{
info = value;
draw_axes_info (cr, info, width, height);
draw_axes_info (cr, info, &allocation);
}
/* Draw name, color legend and misc data */
@@ -515,6 +512,8 @@ draw_cb (GtkDrawingArea *da,
info = value;
draw_device_info (widget, cr, key, &y, info);
}
return FALSE;
}
static void
@@ -619,13 +618,12 @@ do_event_axes (GtkWidget *toplevel)
static GtkWidget *window = NULL;
EventData *event_data;
GtkWidget *label;
GtkWidget *overlay;
GtkWidget *da;
if (!window)
{
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Touch and Drawing Tablets");
gtk_window_set_title (GTK_WINDOW (window), "Event Axes");
gtk_window_set_default_size (GTK_WINDOW (window), 400, 400);
g_signal_connect (window, "destroy",
G_CALLBACK (gtk_widget_destroyed), &window);
@@ -636,33 +634,22 @@ do_event_axes (GtkWidget *toplevel)
g_object_set_data_full (G_OBJECT (window), "gtk-demo-event-data",
event_data, (GDestroyNotify) event_data_free);
da = gtk_drawing_area_new ();
gtk_drawing_area_set_content_width (GTK_DRAWING_AREA (da), 400);
gtk_drawing_area_set_content_height (GTK_DRAWING_AREA (da), 400);
gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (da), draw_cb, event_data, NULL);
gtk_widget_set_can_focus (da, TRUE);
gtk_widget_grab_focus (da);
g_signal_connect (da, "event",
g_signal_connect (window, "event",
G_CALLBACK (event_cb), event_data);
g_signal_connect (window, "draw",
G_CALLBACK (draw_cb), event_data);
label = gtk_label_new ("");
gtk_widget_set_halign (label, GTK_ALIGN_START);
gtk_widget_set_valign (label, GTK_ALIGN_START);
gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
gtk_container_add (GTK_CONTAINER (window), label);
overlay = gtk_overlay_new ();
gtk_container_add (GTK_CONTAINER (window), overlay);
gtk_container_add (GTK_CONTAINER (overlay), da);
gtk_overlay_add_overlay (GTK_OVERLAY (overlay), label);
init_pad_controller (da, label);
init_pad_controller (window, label);
}
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -15,11 +15,8 @@ static GtkWidget *window = NULL;
static void
response_cb (GtkDialog *dialog, gint response_id)
{
if (response_id != GTK_RESPONSE_DELETE_EVENT)
{
gtk_window_destroy (GTK_WINDOW (window));
window = NULL;
}
gtk_widget_destroy (window);
window = NULL;
}
static void
@@ -86,7 +83,7 @@ do_expander (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -200,7 +200,7 @@ do_filtermodel (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -172,7 +172,7 @@ do_fishbowl (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;

View File

@@ -745,7 +745,7 @@ do_flowbox (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -456,11 +456,7 @@ switch_to_label (void)
static gboolean
entry_key_press (GtkEntry *entry, GdkEventKey *event)
{
guint keyval;
gdk_event_get_keyval ((GdkEvent *)event, &keyval);
if (keyval == GDK_KEY_Escape)
if (event->keyval == GDK_KEY_Escape)
{
gtk_entry_set_text (GTK_ENTRY (entry), text);
switch_to_label ();
@@ -524,7 +520,7 @@ do_font_features (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_window_present (GTK_WINDOW (window));
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -979,7 +979,7 @@ do_foreigndrawing (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

164
demos/gtk-demo/geninclude.pl.in Executable file
View File

@@ -0,0 +1,164 @@
#!@PERL@ -w
print <<EOT;
typedef GtkWidget *(*GDoDemoFunc) (GtkWidget *do_widget);
typedef struct _Demo Demo;
struct _Demo
{
gchar *name;
gchar *title;
gchar *filename;
GDoDemoFunc func;
Demo *children;
};
EOT
for $file (@ARGV) {
my %demo;
($basename = $file) =~ s/\.c$//;
open INFO_FILE, $file or die "Cannot open '$file'\n";
$title = <INFO_FILE>;
$title =~ s@^\s*/\*\s*@@;
$title =~ s@\s*$@@;
close INFO_FILE;
print "GtkWidget *do_$basename (GtkWidget *do_widget);\n";
push @demos, {"name" => $basename, "title" => $title, "file" => $file,
"func" => "do_$basename"};
}
# generate a list of 'parent names'
foreach $href (@demos) {
if ($href->{"title"} =~ m|^([-\w\s]+)/[-\w\s]+$|) {
my $parent_name = $1;
my $do_next = 0;
# parent detected
if (@parents) {
foreach $foo (@parents) {
if ($foo eq $parent_name) {
$do_next = 1;
}
}
if ($do_next) {
next;
}
}
push @parents, $parent_name;
$tmp = (@child_arrays)?($#child_arrays + 1):0;
push @child_arrays, "child$tmp";
push @demos, {"name" => "NULL", "title" => $parent_name, "file" => "NULL",
"func" => "NULL"};
}
}
if (@parents) {
$i = 0;
for ($i = 0; $i <= $#parents; $i++) {
$first = 1;
print "\nDemo ", $child_arrays[$i], "[] = {\n";
$j = 0;
for ($j = 0; $j <= $#demos; $j++) {
$href = $demos[$j];
if (!$demos[$j]) {
next;
}
if ($demos[$j]{"title"} =~ m|^$parents[$i]/([-\w\s]+)$|) {
if ($first) {
$first = 0;
} else {
print ",\n";
}
print qq ( { "$demos[$j]{name}", "$1", "$demos[$j]{file}", $demos[$j]{func}, NULL });
# hack ... ugly
$demos[$j]{"title"} = "foo";
}
}
print ",\n";
print qq ( { NULL } );
print "\n};\n";
}
}
# sort @demos
@demos_old = @demos;
@demos = sort {
$a->{"title"} cmp $b->{"title"};
} @demos_old;
# sort the child arrays
if (@child_arrays) {
for ($i = 0; $i <= $#child_arrays; $i++) {
@foo_old = @{$child_arrays[$i]};
@{$child_arrays[$i]} = sort {
$a->{"title"} cmp $b->{"title"};
} @foo_old;
}
}
# toplevel
print "\nDemo gtk_demos[] = {\n";
$first = 1;
foreach $href (@demos) {
$handled = 0;
# ugly evil hack
if ($href->{title} eq "foo") {
next;
}
if ($first) {
$first = 0;
} else {
print ", \n";
}
if (@parents) {
for ($i = 0; $i <= $#parents; $i++) {
if ($parents[$i] eq $href->{title}) {
if ($href->{file} eq 'NULL') {
print qq ( { NULL, "$href->{title}", NULL, $href->{func}, $child_arrays[$i] });
} else {
print qq ( { "$href->{name}", "$href->{title}", "$href->{file}", $href->{func}, $child_arrays[$i] });
}
$handled = 1;
last;
}
}
}
if ($handled) {
next;
}
print qq ( { "$href->{name}", "$href->{title}", "$href->{file}", $href->{func}, NULL });
}
print ",\n";
print qq ( { NULL } );
print "\n};\n";
exit 0;

View File

@@ -207,7 +207,7 @@ do_gestures (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -424,7 +424,7 @@ create_glarea_window (GtkWidget *do_widget)
button = gtk_button_new_with_label ("Quit");
gtk_widget_set_hexpand (button, TRUE);
gtk_container_add (GTK_CONTAINER (box), button);
g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_window_destroy), window);
g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window);
return window;
}
@@ -438,7 +438,7 @@ do_glarea (GtkWidget *do_widget)
if (!gtk_widget_get_visible (demo_window))
gtk_widget_show (demo_window);
else
gtk_window_destroy (GTK_WINDOW (demo_window));
gtk_widget_destroy (demo_window);
return demo_window;
}

View File

@@ -60,7 +60,7 @@ do_headerbar (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -110,11 +110,8 @@ key_press_event (GtkWidget *text_view,
{
GtkTextIter iter;
GtkTextBuffer *buffer;
guint keyval;
gdk_event_get_keyval ((GdkEvent *)event, &keyval);
switch (keyval)
switch (event->keyval)
{
case GDK_KEY_Return:
case GDK_KEY_KP_Enter:
@@ -140,27 +137,31 @@ event_after (GtkWidget *text_view,
GtkTextIter start, end, iter;
GtkTextBuffer *buffer;
gdouble ex, ey;
int x, y;
GdkEventType type;
gint x, y;
type = gdk_event_get_event_type (ev);
if (type == GDK_BUTTON_RELEASE)
if (ev->type == GDK_BUTTON_RELEASE)
{
guint button;
GdkEventButton *event;
gdk_event_get_button (ev, &button);
if (button != GDK_BUTTON_PRIMARY)
event = (GdkEventButton *)ev;
if (event->button != GDK_BUTTON_PRIMARY)
return FALSE;
ex = event->x;
ey = event->y;
}
else if (type == GDK_TOUCH_END)
else if (ev->type == GDK_TOUCH_END)
{
GdkEventTouch *event;
event = (GdkEventTouch *)ev;
ex = event->x;
ey = event->y;
}
else
return FALSE;
gdk_event_get_coords (ev, &ex, &ey);
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view));
/* we shouldn't follow a link if the user has selected something */
@@ -231,13 +232,11 @@ static gboolean
motion_notify_event (GtkWidget *text_view,
GdkEventMotion *event)
{
gdouble ex, ey;
gint x, y;
gdk_event_get_coords ((GdkEvent *)event, &ex, &ey);
gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (text_view),
GTK_TEXT_WINDOW_WIDGET,
ex, ey, &x, &y);
event->x, event->y, &x, &y);
set_cursor_if_appropriate (GTK_TEXT_VIEW (text_view), x, y);
@@ -295,7 +294,7 @@ do_hypertext (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -228,7 +228,7 @@ home_clicked (GtkToolItem *item,
static void close_window(void)
{
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
window = NULL;
g_object_unref (file_pixbuf);
@@ -329,7 +329,7 @@ do_iconview (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -152,7 +152,7 @@ do_iconview_edit (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -100,7 +100,7 @@ progressive_timeout (gpointer data)
g_error_free (error);
g_signal_connect (dialog, "response",
G_CALLBACK (gtk_window_destroy), NULL);
G_CALLBACK (gtk_widget_destroy), NULL);
g_object_unref (image_stream);
image_stream = NULL;
@@ -128,7 +128,7 @@ progressive_timeout (gpointer data)
g_error_free (error);
g_signal_connect (dialog, "response",
G_CALLBACK (gtk_window_destroy), NULL);
G_CALLBACK (gtk_widget_destroy), NULL);
g_object_unref (image_stream);
image_stream = NULL;
@@ -161,7 +161,7 @@ progressive_timeout (gpointer data)
g_error_free (error);
g_signal_connect (dialog, "response",
G_CALLBACK (gtk_window_destroy), NULL);
G_CALLBACK (gtk_widget_destroy), NULL);
gtk_widget_show (dialog);
@@ -198,7 +198,7 @@ progressive_timeout (gpointer data)
g_error_free (error);
g_signal_connect (dialog, "response",
G_CALLBACK (gtk_window_destroy), NULL);
G_CALLBACK (gtk_widget_destroy), NULL);
gtk_widget_show (dialog);
@@ -232,7 +232,7 @@ progressive_timeout (gpointer data)
g_error_free (error);
g_signal_connect (dialog, "response",
G_CALLBACK (gtk_window_destroy), NULL);
G_CALLBACK (gtk_widget_destroy), NULL);
gtk_widget_show (dialog);
@@ -436,7 +436,7 @@ do_images (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -31,7 +31,7 @@ on_bar_response (GtkInfoBar *info_bar,
g_signal_connect_swapped (dialog,
"response",
G_CALLBACK (gtk_window_destroy),
G_CALLBACK (gtk_widget_destroy),
dialog);
gtk_widget_show (dialog);
@@ -146,7 +146,7 @@ do_infobar (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -12,7 +12,7 @@ response_cb (GtkWidget *dialog,
gint response_id,
gpointer data)
{
gtk_window_destroy (GTK_WINDOW (dialog));
gtk_widget_destroy (dialog);
}
static gboolean
@@ -78,7 +78,7 @@ do_links (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -283,7 +283,6 @@ do_list_store (GtkWidget *do_widget)
/* create tree view */
treeview = gtk_tree_view_new_with_model (model);
gtk_widget_set_vexpand (treeview, TRUE);
gtk_tree_view_set_search_column (GTK_TREE_VIEW (treeview),
COLUMN_DESCRIPTION);
@@ -310,7 +309,7 @@ do_list_store (GtkWidget *do_widget)
}
else
{
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
window = NULL;
if (timeout != 0)
{

View File

@@ -389,7 +389,7 @@ do_listbox (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -78,7 +78,7 @@ activate_quit (GSimpleAction *action,
win = list->data;
next = list->next;
gtk_window_destroy (GTK_WINDOW (win));
gtk_widget_destroy (GTK_WIDGET (win));
list = next;
}
@@ -592,17 +592,6 @@ add_data_tab (const gchar *demoname)
g_bytes_unref (bytes);
}
if (GTK_IS_IMAGE (widget))
{
GtkWidget *sw;
gtk_widget_set_halign (widget, GTK_ALIGN_CENTER);
gtk_widget_set_valign (widget, GTK_ALIGN_CENTER);
sw = gtk_scrolled_window_new (NULL, NULL);
gtk_container_add (GTK_CONTAINER (sw), widget);
widget = sw;
}
label = gtk_label_new (resources[i]);
gtk_widget_show (label);
gtk_notebook_append_page (GTK_NOTEBOOK (notebook), widget, label);

View File

@@ -120,7 +120,7 @@ do_markup (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -147,7 +147,7 @@ do_menus (GtkWidget *do_widget)
button = gtk_button_new_with_label ("Close");
g_signal_connect_swapped (button, "clicked",
G_CALLBACK(gtk_window_destroy), window);
G_CALLBACK(gtk_widget_destroy), window);
gtk_box_pack_start (GTK_BOX (box2), button);
gtk_widget_set_can_default (button, TRUE);
gtk_widget_grab_default (button);
@@ -157,7 +157,7 @@ do_menus (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -61,7 +61,7 @@ do_modelbutton (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;

View File

@@ -64,15 +64,11 @@ do_overlay (GtkWidget *do_widget)
label = gtk_label_new ("<span foreground='blue' weight='ultrabold' font='40'>Numbers</span>");
gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
gtk_widget_set_margin_top (label, 8);
gtk_widget_set_margin_bottom (label, 50);
gtk_widget_set_margin_bottom (label, 8);
gtk_box_pack_start (GTK_BOX (vbox), label);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
gtk_overlay_add_overlay (GTK_OVERLAY (overlay), vbox);
gtk_widget_set_halign (vbox, GTK_ALIGN_CENTER);
gtk_widget_set_valign (vbox, GTK_ALIGN_CENTER);
gtk_entry_set_placeholder_text (GTK_ENTRY (entry), "Your Lucky Number");
gtk_widget_set_margin_top (entry, 50);
gtk_widget_set_margin_top (entry, 8);
gtk_widget_set_margin_bottom (entry, 8);
gtk_box_pack_start (GTK_BOX (vbox), entry);
@@ -85,7 +81,7 @@ do_overlay (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -97,7 +97,7 @@ do_overlay2 (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -11,7 +11,7 @@
static void
done_cb (GtkDialog *dialog, gint response, gpointer data)
{
gtk_window_destroy (GTK_WINDOW (dialog));
gtk_widget_destroy (GTK_WIDGET (dialog));
}
GtkWidget *
@@ -29,7 +29,7 @@ do_pagesetup (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -189,7 +189,7 @@ do_panes (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -75,7 +75,7 @@ do_pickers (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -198,7 +198,7 @@ do_pixbufs (GtkWidget *do_widget)
g_error_free (error);
g_signal_connect (dialog, "response",
G_CALLBACK (gtk_window_destroy), NULL);
G_CALLBACK (gtk_widget_destroy), NULL);
gtk_widget_show (dialog);
}
@@ -222,7 +222,7 @@ do_pixbufs (GtkWidget *do_widget)
gtk_widget_show (window);
else
{
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
g_object_unref (frame);
}

View File

@@ -45,7 +45,7 @@ create_complex_popover (GtkWidget *parent,
g_object_ref (content);
gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (content)),
content);
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
g_object_unref (builder);
popover = create_popover (parent, content, GTK_POS_BOTTOM);
@@ -100,20 +100,18 @@ day_selected_cb (GtkCalendar *calendar,
GtkAllocation allocation;
GtkWidget *popover;
GdkEvent *event;
GdkWindow *window;
gdouble x, y;
event = gtk_get_current_event ();
if (gdk_event_get_event_type (event) != GDK_BUTTON_PRESS)
if (event->type != GDK_BUTTON_PRESS)
return;
window = gdk_event_get_window (event);
gdk_event_get_coords (event, &x, &y);
gdk_window_coords_to_parent (window, x, y, &x, &y);
gdk_window_coords_to_parent (event->button.window,
event->button.x, event->button.y,
&event->button.x, &event->button.y);
gtk_widget_get_allocation (GTK_WIDGET (calendar), &allocation);
rect.x = x - allocation.x;
rect.y = y - allocation.y;
rect.x = event->button.x - allocation.x;
rect.y = event->button.y - allocation.y;
rect.width = rect.height = 1;
popover = create_popover (GTK_WIDGET (calendar),
@@ -135,7 +133,6 @@ do_popover (GtkWidget *do_widget)
if (!window)
{
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Popovers");
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 24);
g_object_set (box, "margin", 24, NULL);
gtk_container_add (GTK_CONTAINER (window), box);
@@ -174,7 +171,7 @@ do_popover (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 459 KiB

View File

@@ -188,7 +188,7 @@ do_printing (GtkWidget *do_widget)
g_error_free (error);
g_signal_connect (dialog, "response",
G_CALLBACK (gtk_window_destroy), NULL);
G_CALLBACK (gtk_widget_destroy), NULL);
gtk_widget_show (dialog);
}

View File

@@ -86,7 +86,7 @@ do_revealer (GtkWidget *do_widget)
}
else
{
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
}

View File

@@ -217,7 +217,7 @@ do_rotated_text (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -31,7 +31,7 @@ do_scale (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;

View File

@@ -291,8 +291,8 @@ do_search_entry (GtkWidget *do_widget)
gtk_widget_show (window);
else
{
gtk_menu_detach (GTK_MENU (menu));
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (menu);
gtk_widget_destroy (window);
}
return window;

View File

@@ -154,7 +154,7 @@ do_search_entry2 (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -108,7 +108,7 @@ do_shortcuts (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -82,7 +82,7 @@ do_sidebar (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -152,7 +152,7 @@ do_sizegroup (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -247,7 +247,7 @@ do_spinbutton (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -45,7 +45,7 @@ do_spinner (GtkWidget *do_widget)
gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
g_signal_connect (window, "response",
G_CALLBACK (gtk_window_destroy), NULL);
G_CALLBACK (gtk_widget_destroy), NULL);
g_signal_connect (window, "destroy",
G_CALLBACK (gtk_widget_destroyed), &window);
@@ -90,7 +90,7 @@ do_spinner (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -31,7 +31,7 @@ do_stack (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;

View File

@@ -53,7 +53,7 @@ do_tabs (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -76,7 +76,7 @@ do_textmask (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -197,7 +197,7 @@ do_textscroll (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -521,7 +521,7 @@ do_textview (GtkWidget *do_widget)
}
else
{
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
window = NULL;
}

View File

@@ -55,7 +55,7 @@
<property name="label" translatable="yes">Raised</property>
<property name="use_underline">1</property>
<property name="is_important">1</property>
<property name="icon_name">edit-find</property>
<property name="icon_name">edit-find-symbolic</property>
<style>
<class name="raised"/>
</style>
@@ -70,7 +70,7 @@
<property name="label" translatable="yes">Raised Active</property>
<property name="use_underline">1</property>
<property name="is_important">1</property>
<property name="icon_name">edit-find</property>
<property name="icon_name">edit-find-symbolic</property>
<property name="active">1</property>
<style>
<class name="raised"/>

View File

@@ -38,7 +38,7 @@ do_theming_style_classes (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -623,7 +623,7 @@ do_toolpalette (GtkWidget *do_widget)
}
else
{
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
window = NULL;
}

View File

@@ -1,10 +1,184 @@
/* Overlay/Transparency
*
* Blur the background behind an overlay.
* Use transparent background on GdkWindows to create a shadow effect on a GtkOverlay widget.
*/
#include <gtk/gtk.h>
#define SHADOW_OFFSET_X 7
#define SHADOW_OFFSET_Y 7
#define SHADOW_RADIUS 5
static void
draw_shadow_box (cairo_t *cr,
GdkRectangle rect,
double radius,
double transparency)
{
cairo_pattern_t *pattern;
double x0, x1, x2, x3;
double y0, y1, y2, y3;
x0 = rect.x;
x1 = rect.x + radius;
x2 = rect.x + rect.width - radius;
x3 = rect.x + rect.width;
y0 = rect.y;
y1 = rect.y + radius;
y2 = rect.y + rect.height - radius;
y3 = rect.y + rect.height;
/* Fill non-border part */
cairo_set_source_rgba (cr, 0, 0, 0, transparency);
cairo_rectangle (cr,
x1, y1, x2 - x1, y2 - y1);
cairo_fill (cr);
/* Upper border */
pattern = cairo_pattern_create_linear (0, y0, 0, y1);
cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, 0.0);
cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, transparency);
cairo_set_source (cr, pattern);
cairo_pattern_destroy (pattern);
cairo_rectangle (cr,
x1, y0,
x2 - x1, y1 - y0);
cairo_fill (cr);
/* Bottom border */
pattern = cairo_pattern_create_linear (0, y2, 0, y3);
cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency);
cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0);
cairo_set_source (cr, pattern);
cairo_pattern_destroy (pattern);
cairo_rectangle (cr,
x1, y2,
x2 - x1, y3 - y2);
cairo_fill (cr);
/* Left border */
pattern = cairo_pattern_create_linear (x0, 0, x1, 0);
cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, 0.0);
cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, transparency);
cairo_set_source (cr, pattern);
cairo_pattern_destroy (pattern);
cairo_rectangle (cr,
x0, y1,
x1 - x0, y2 - y1);
cairo_fill (cr);
/* Right border */
pattern = cairo_pattern_create_linear (x2, 0, x3, 0);
cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency);
cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0);
cairo_set_source (cr, pattern);
cairo_pattern_destroy (pattern);
cairo_rectangle (cr,
x2, y1,
x3 - x2, y2 - y1);
cairo_fill (cr);
/* NW corner */
pattern = cairo_pattern_create_radial (x1, y1, 0,
x1, y1, radius);
cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency);
cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0);
cairo_set_source (cr, pattern);
cairo_pattern_destroy (pattern);
cairo_rectangle (cr,
x0, y0,
x1 - x0, y1 - y0);
cairo_fill (cr);
/* NE corner */
pattern = cairo_pattern_create_radial (x2, y1, 0,
x2, y1, radius);
cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency);
cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0);
cairo_set_source (cr, pattern);
cairo_pattern_destroy (pattern);
cairo_rectangle (cr,
x2, y0,
x3 - x2, y1 - y0);
cairo_fill (cr);
/* SW corner */
pattern = cairo_pattern_create_radial (x1, y2, 0,
x1, y2, radius);
cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency);
cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0);
cairo_set_source (cr, pattern);
cairo_pattern_destroy (pattern);
cairo_rectangle (cr,
x0, y2,
x1 - x0, y3 - y2);
cairo_fill (cr);
/* SE corner */
pattern = cairo_pattern_create_radial (x2, y2, 0,
x2, y2, radius);
cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency);
cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0);
cairo_set_source (cr, pattern);
cairo_pattern_destroy (pattern);
cairo_rectangle (cr,
x2, y2,
x3 - x2, y3 - y2);
cairo_fill (cr);
}
static gboolean
draw_callback (GtkWidget *widget,
cairo_t *cr,
gpointer data)
{
GdkRectangle rect;
gtk_widget_get_allocation (widget, &rect);
rect.x += SHADOW_OFFSET_X;
rect.y += SHADOW_OFFSET_Y;
rect.width -= SHADOW_OFFSET_X;
rect.height -= SHADOW_OFFSET_Y;
draw_shadow_box (cr,
rect, SHADOW_RADIUS, 0.4);
return FALSE;
}
GtkWidget *
do_transparent (GtkWidget *do_widget)
{
@@ -12,12 +186,12 @@ do_transparent (GtkWidget *do_widget)
if (!window)
{
GtkWidget *view;
GtkWidget *sw;
GtkWidget *overlay;
GtkWidget *button;
GtkWidget *label;
GtkWidget *box;
GtkWidget *image;
GtkWidget *entry;
GtkCssProvider *provider;
gchar *css;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_screen (GTK_WINDOW (window),
@@ -29,48 +203,39 @@ do_transparent (GtkWidget *do_widget)
gtk_window_set_title (GTK_WINDOW (window), "Transparency");
overlay = gtk_overlay_new ();
gtk_container_add (GTK_CONTAINER (window), overlay);
button = gtk_button_new_with_label ("Don't click this button!");
label = gtk_bin_get_child (GTK_BIN (button));
g_object_set (label, "margin", 50, NULL);
gtk_widget_set_opacity (button, 0.7);
gtk_widget_set_halign (button, GTK_ALIGN_FILL);
gtk_widget_set_valign (button, GTK_ALIGN_START);
gtk_overlay_add_overlay (GTK_OVERLAY (overlay), button);
gtk_container_child_set (GTK_CONTAINER (overlay), button, "blur", 5.0, NULL);
button = gtk_button_new_with_label ("Maybe this one?");
label = gtk_bin_get_child (GTK_BIN (button));
g_object_set (label, "margin", 50, NULL);
gtk_widget_set_opacity (button, 0.7);
gtk_widget_set_halign (button, GTK_ALIGN_FILL);
gtk_widget_set_valign (button, GTK_ALIGN_END);
gtk_overlay_add_overlay (GTK_OVERLAY (overlay), button);
gtk_container_child_set (GTK_CONTAINER (overlay), button, "blur", 5.0, NULL);
view = gtk_text_view_new ();
sw = gtk_scrolled_window_new (NULL, NULL);
sw = gtk_scrolled_window_new (NULL, NULL);
gtk_container_add (GTK_CONTAINER (overlay), sw);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
gtk_container_add (GTK_CONTAINER (sw), box);
image = gtk_image_new_from_resource ("/transparent/portland-rose.jpg");
gtk_container_add (GTK_CONTAINER (sw), view);
gtk_container_add (GTK_CONTAINER (box), image);
overlay = gtk_overlay_new ();
gtk_container_add (GTK_CONTAINER (overlay), sw);
gtk_container_add (GTK_CONTAINER (window), overlay);
entry = gtk_entry_new ();
provider = gtk_css_provider_new ();
css = g_strdup_printf ("* { border-width: 0px %dpx %dpx 0px; }",
SHADOW_OFFSET_X, SHADOW_OFFSET_Y);
gtk_css_provider_load_from_data (provider, css, -1);
g_free (css);
gtk_style_context_add_provider (gtk_widget_get_style_context (entry),
GTK_STYLE_PROVIDER (provider),
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
g_signal_connect (entry, "draw", G_CALLBACK (draw_callback), NULL);
gtk_overlay_add_overlay (GTK_OVERLAY (overlay), entry);
gtk_widget_set_halign (entry, GTK_ALIGN_CENTER);
gtk_widget_set_valign (entry, GTK_ALIGN_START);
gtk_widget_show (overlay);
}
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -417,7 +417,6 @@ do_tree_store (GtkWidget *do_widget)
/* create tree view */
treeview = gtk_tree_view_new_with_model (model);
gtk_widget_set_vexpand (treeview, TRUE);
g_object_unref (model);
gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)),
GTK_SELECTION_MULTIPLE);
@@ -435,7 +434,7 @@ do_tree_store (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;
}

View File

@@ -172,7 +172,7 @@ do_widgetbowl (GtkWidget *do_widget)
if (!gtk_widget_get_visible (window))
gtk_widget_show (window);
else
gtk_window_destroy (GTK_WINDOW (window));
gtk_widget_destroy (window);
return window;

View File

@@ -287,6 +287,7 @@ emblem-system=The icon used as an emblem for directories that contain system lib
avatar-default=The generic avatar icon, which is used to represent a user that doesn't have a personalized avatar
emblem-synchronizing=The icon used as an emblem to indicate that a a synchronizing operation is in process
emblem-shared=The icon used as an emblem for files and directories that are shared to other users
folder-download=The icon representing the location in the file system where downloaded files are stored
help-browser=The icon used for the desktop's help browsing application
[other]
@@ -428,7 +429,7 @@ emblem-urgent=
emblem-videos=
emblem-web=
folder-documents=
folder-download=The icon representing the location in the file system where downloaded files are stored
folder-download=
folder-music=
folder-pictures=
folder-documents=

View File

@@ -256,7 +256,7 @@ activate_quit (GSimpleAction *action,
win = list->data;
next = list->next;
gtk_window_destroy (GTK_WINDOW (win));
gtk_widget_destroy (GTK_WIDGET (win));
list = next;
}
@@ -1695,14 +1695,12 @@ activate (GApplication *app)
widget = (GtkWidget *)gtk_builder_get_object (builder, "statusbar");
gtk_statusbar_push (GTK_STATUSBAR (widget), 0, "All systems are operating normally.");
action = G_ACTION (g_property_action_new ("statusbar", widget, "visible"));
g_action_map_add_action (G_ACTION_MAP (window), action);
g_object_unref (G_OBJECT (action));
g_action_map_add_action (G_ACTION_MAP (window),
G_ACTION (g_property_action_new ("statusbar", widget, "visible")));
widget = (GtkWidget *)gtk_builder_get_object (builder, "toolbar");
action = G_ACTION (g_property_action_new ("toolbar", widget, "visible"));
g_action_map_add_action (G_ACTION_MAP (window), action);
g_object_unref (G_OBJECT (action));
g_action_map_add_action (G_ACTION_MAP (window),
G_ACTION (g_property_action_new ("toolbar", widget, "visible")));
adj = (GtkAdjustment *)gtk_builder_get_object (builder, "adjustment1");

View File

@@ -2,25 +2,3 @@
padding: 0;
outline-width: 0;
}
.border-inset {
border-style: inset;
}
.border-outset {
border-style: outset;
}
.border-groove {
border-style: groove;
}
.border-ridge {
border-style: ridge;
}
/* These effects use 2 lines, so show them */
.border-groove,
.border-ridge {
border-width: 2px;
}

View File

@@ -1157,12 +1157,10 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
<property name="hexpand">1</property>
<child>
<object class="GtkFrame" id="frame1">
<style>
<class name="border-inset"/>
</style>
<property name="shadow_type">in</property>
<child type="label">
<object class="GtkLabel" id="label1">
<property name="label" translatable="yes">&lt;b&gt;Inset&lt;/b&gt;</property>
<property name="label" translatable="yes">&lt;b&gt;In&lt;/b&gt;</property>
<property name="use_markup">1</property>
</object>
</child>
@@ -1170,12 +1168,10 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
</child>
<child>
<object class="GtkFrame" id="frame2">
<style>
<class name="border-outset"/>
</style>
<property name="shadow_type">out</property>
<child type="label">
<object class="GtkLabel" id="label2">
<property name="label" translatable="yes">&lt;b&gt;Outset&lt;/b&gt;</property>
<property name="label" translatable="yes">&lt;b&gt;Out&lt;/b&gt;</property>
<property name="use_markup">1</property>
</object>
</child>
@@ -1186,12 +1182,9 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
</child>
<child>
<object class="GtkFrame" id="frame3">
<style>
<class name="border-groove"/>
</style>
<child type="label">
<object class="GtkLabel" id="label17">
<property name="label" translatable="yes">&lt;b&gt;Groove&lt;/b&gt;</property>
<property name="label" translatable="yes">&lt;b&gt;Etched in&lt;/b&gt;</property>
<property name="use_markup">1</property>
</object>
</child>
@@ -1202,12 +1195,10 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
</child>
<child>
<object class="GtkFrame" id="frame4">
<style>
<class name="border-ridge"/>
</style>
<property name="shadow_type">etched-out</property>
<child type="label">
<object class="GtkLabel" id="label18">
<property name="label" translatable="yes">&lt;b&gt;Ridge&lt;/b&gt;</property>
<property name="label" translatable="yes">&lt;b&gt;Etched out&lt;/b&gt;</property>
<property name="use_markup">1</property>
</object>
</child>

View File

@@ -56,7 +56,6 @@ gsk_transform_node_get_child
gsk_opacity_node_new
gsk_opacity_node_get_child
gsk_color_matrix_node_new
gsk_color_matrix_node_get_child
gsk_repeat_node_new
gsk_clip_node_new
gsk_clip_node_get_child
@@ -67,8 +66,6 @@ gsk_shadow_node_new
GskBlendMode
gsk_blend_node_new
gsk_cross_fade_node_new
gsk_text_node_new
gsk_blur_node_new
<SUBSECTION Standard>
GSK_IS_RENDER_NODE
GSK_RENDER_NODE
@@ -87,7 +84,6 @@ GSK_TYPE_SERIALIZATION_ERROR
<SECTION>
<FILE>GskTexture</FILE>
gsk_texture_new_for_data
gsk_texture_new_for_surface
gsk_texture_new_for_pixbuf
gsk_texture_get_width
gsk_texture_get_height
@@ -103,7 +99,6 @@ GSK_IS_TEXTURE
<FILE>GskRoundedRect</FILE>
GskCorner
GskRoundedRect
GSK_ROUNDED_RECT_INIT
gsk_rounded_rect_init
gsk_rounded_rect_init_copy
gsk_rounded_rect_init_from_rect

View File

@@ -305,13 +305,13 @@ How to compile GTK+ itself
</group>
<sbr/>
<group>
<arg choice="plain">-Ddocumentation=true</arg>
<arg choice="plain">-Ddocumentation=false</arg>
<arg choice="plain">-Denable-documentation=true</arg>
<arg choice="plain">-Denable-documentation=false</arg>
</group>
<sbr/>
<group>
<arg choice="plain">-Dman-pages=true</arg>
<arg choice="plain">-Dman-pages=false</arg>
<arg choice="plain">-Denable-man-pages=true</arg>
<arg choice="plain">-Denable-man-pages=false</arg>
</group>
<sbr/>
<group>
@@ -384,10 +384,6 @@ How to compile GTK+ itself
<arg choice="plain">-Denable-mir-backend=true</arg>
<arg choice="plain">-Denable-mir-backend=false</arg>
</group>
<group>
<arg choice="plain">-Dintrospection=true</arg>
<arg choice="plain">-Dintrospection=false</arg>
</group>
</cmdsynopsis>
</para>
@@ -466,12 +462,12 @@ How to compile GTK+ itself
</formalpara>
<formalpara>
<title><systemitem>enable-x11-backend</systemitem>,
<systemitem>enable-win32-backend</systemitem>,
<systemitem>enable-quartz-backend</systemitem>,
<systemitem>enable-broadway-backend</systemitem>,
<systemitem>enable-wayland-backend</systemitem>, and
<systemitem>enable-mir-backend</systemitem></title>
<title><systemitem>-Denable-x11-backend</systemitem>,
<systemitem>-Denable-win32-backend</systemitem>,
<systemitem>-Denable-quartz-backend</systemitem>,
<systemitem>-Denable-broadway-backend</systemitem>,
<systemitem>-Denable-wayland-backend</systemitem>, and
<systemitem>-Denable-mir-backend</systemitem></title>
<para>
Enable specific backends for GDK. If none of these options
@@ -484,29 +480,6 @@ How to compile GTK+ itself
</para>
</formalpara>
<formalpara>
<title><systemitem>introspection</systemitem></title>
<para>
Allows to disable building introspection support. This is option
is mainly useful for shortening turnaround times on developer
systems. Installed builds of GTK+ should always have introspection
support.
</para>
</formalpara>
<formalpara>
<title><systemitem>build-tests</systemitem>
<systemitem>demos</systemitem></title>
<para>
By default, GTK+ will build quite a few tests and demos.
While these are useful on a developer system, they are not
needed when GTK+ is built e.g. for a flatpak runtime. These
options allow to disable building tests and demos.
</para>
</formalpara>
</refsect1>
</refentry>

View File

@@ -509,7 +509,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
icons. The recognized names for colors in symbolic icons are error,
warning and success. The default palette maps these three names to
symbolic colors with the names @error_color, @warning_color and
@success_color respectively.
@error_color.
</para>
<table pgwide="1">

View File

@@ -767,7 +767,6 @@ gtk_container_class_find_child_property
gtk_container_class_install_child_property
gtk_container_class_install_child_properties
gtk_container_class_list_child_properties
gtk_container_remove_callback
<SUBSECTION Standard>
GTK_CONTAINER
@@ -4485,6 +4484,7 @@ GtkCallback
GtkRequisition
GtkAllocation
gtk_widget_new
gtk_widget_destroy
gtk_widget_in_destruction
gtk_widget_destroyed
gtk_widget_unparent
@@ -4816,10 +4816,10 @@ gtk_window_get_focus_visible
gtk_window_set_focus_visible
gtk_window_get_application
gtk_window_set_application
gtk_window_set_has_user_ref_count
gtk_window_set_titlebar
gtk_window_get_titlebar
gtk_window_set_interactive_debugging
gtk_window_destroy
<SUBSECTION Standard>
GTK_WINDOW

View File

@@ -47,11 +47,11 @@ gnome.gtkdoc('gtk4',
install: true)
xsltproc = find_program('xsltproc', required: false)
if get_option('man-pages') and not xsltproc.found()
if get_option('enable-man-pages') and not xsltproc.found()
error('No xsltproc found, but man pages were explicitly enabled')
endif
if get_option('man-pages') and xsltproc.found()
if get_option('enable-man-pages') and xsltproc.found()
xlstproc_flags = [
'--nonet',
'--stringparam', 'man.output.quietly', '1',

View File

@@ -252,7 +252,7 @@ shoot_one (WidgetInfo *info)
{
g_warning ("unable to save shot of %s", info->name);
}
gtk_window_destroy (GTK_WINDOW (info->window));
gtk_widget_destroy (info->window);
shot_id = 0;

View File

@@ -16,7 +16,7 @@ action_activated (GSimpleAction *action,
g_action_get_name (G_ACTION (action)));
g_signal_connect_swapped (dialog, "response",
G_CALLBACK (gtk_window_destroy), dialog);
G_CALLBACK (gtk_widget_destroy), dialog);
gtk_widget_show (dialog);
}

View File

@@ -386,7 +386,7 @@ response (GtkDialog *dialog,
if (response_id == GTK_RESPONSE_CLOSE)
{
gtk_window_destroy (GTK_WINDOW (dialog));
gtk_widget_destroy (GTK_WIDGET (dialog));
return;
}

View File

@@ -82,21 +82,15 @@ button_press_event_cb (GtkWidget *widget,
GdkEventButton *event,
gpointer data)
{
guint button;
double x, y;
/* paranoia check, in case we haven't gotten a configure event */
if (surface == NULL)
return FALSE;
gdk_event_get_button ((GdkEvent *)event, &button);
gdk_event_get_coords ((GdkEvent *)event, &x, &y);
if (button == GDK_BUTTON_PRIMARY)
if (event->button == GDK_BUTTON_PRIMARY)
{
draw_brush (widget, x, y);
draw_brush (widget, event->x, event->y);
}
else if (button == GDK_BUTTON_SECONDARY)
else if (event->button == GDK_BUTTON_SECONDARY)
{
clear_surface ();
gtk_widget_queue_draw (widget);
@@ -115,18 +109,12 @@ motion_notify_event_cb (GtkWidget *widget,
GdkEventMotion *event,
gpointer data)
{
double x, y;
GdkModifierType state;
/* paranoia check, in case we haven't gotten a configure event */
if (surface == NULL)
return FALSE;
gdk_event_get_state ((GdkEvent *)event, &state);
gdk_event_get_coords ((GdkEvent *)event, &x, &y);
if (state & GDK_BUTTON1_MASK)
draw_brush (widget, x, y);
if (event->state & GDK_BUTTON1_MASK)
draw_brush (widget, event->x, event->y);
/* We've handled it, stop processing */
return TRUE;

View File

@@ -42,7 +42,7 @@ activate (GtkApplication *app,
gtk_grid_attach (GTK_GRID (grid), button, 1, 0, 1, 1);
button = gtk_button_new_with_label ("Quit");
g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_window_destroy), window);
g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window);
/* Place the Quit button in the grid cell (0, 1), and make it
* span 2 columns.

View File

@@ -24,7 +24,7 @@ activate (GtkApplication *app,
button = gtk_button_new_with_label ("Hello World");
g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL);
g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_window_destroy), window);
g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window);
gtk_container_add (GTK_CONTAINER (button_box), button);
gtk_widget_show (window);

View File

@@ -1,5 +1,4 @@
examples = [
'action-namespace',
'builder',
'drawing',
'grid-packing',

View File

@@ -178,7 +178,7 @@ quit_app (GSimpleAction *action,
win = list->data;
next = list->next;
gtk_window_destroy (win);
gtk_widget_destroy (GTK_WIDGET (win));
list = next;
}
@@ -387,7 +387,7 @@ configure_plugins (GSimpleAction *action,
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), plugin_enabled ("black"));
g_signal_connect (check, "toggled", G_CALLBACK (enable_or_disable_plugin), "black");
g_signal_connect (dialog, "response", G_CALLBACK (gtk_window_destroy), NULL);
g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL);
gtk_window_present (GTK_WINDOW (dialog));

View File

@@ -102,7 +102,7 @@ quit_app (GSimpleAction *action,
win = list->data;
next = list->next;
gtk_window_destroy (win);
gtk_widget_destroy (GTK_WIDGET (win));
list = next;
}

11
gail-4.0.pc.in Normal file
View File

@@ -0,0 +1,11 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
Name: Gail
Description: GNOME Accessibility Implementation Library
Version: @VERSION@
Requires: atk gtk+-4.0
Libs: -L${libdir} -lgailutil-4
Cflags: -I${includedir}/gail-4.0

View File

@@ -901,10 +901,10 @@ map_named_shm (char *name, gsize size)
#endif
}
static const char *
parse_line (const char *line, const char *key)
static char *
parse_line (char *line, char *key)
{
const char *p;
char *p;
if (!g_str_has_prefix (line, key))
return NULL;
@@ -970,15 +970,15 @@ static void
start_input (HttpRequest *request)
{
char **lines;
const char *p;
char *p;
int i;
char *res;
const char *origin, *host;
char *origin, *host;
BroadwayInput *input;
const void *data_buffer;
gsize data_buffer_size;
GInputStream *in;
const char *key;
char *key;
GSocket *socket;
int flag = 1;

View File

@@ -421,7 +421,7 @@ main (int argc, char *argv[])
int http_port = 0;
char *ssl_cert = NULL;
char *ssl_key = NULL;
const char *display;
char *display;
int port = 0;
const GOptionEntry entries[] = {
{ "port", 'p', 0, G_OPTION_ARG_INT, &http_port, "Httpd port", "PORT" },

View File

@@ -1101,8 +1101,6 @@ update_pos (MoveResizeData *mv_resize,
x += dx;
w -= dx;
break;
default:
break;
}
x = MAX (x, 0);
@@ -1230,8 +1228,6 @@ _gdk_broadway_moveresize_handle_event (GdkDisplay *display,
if (event->button.button == mv_resize->moveresize_button)
finish_drag (mv_resize);
break;
default:
break;
}
return TRUE;
}
@@ -1353,7 +1349,6 @@ calculate_unmoving_origin (MoveResizeData *mv_resize)
mv_resize->moveresize_orig_x = rect.x + rect.width - width;
mv_resize->moveresize_orig_y = rect.y + rect.height - height;
break;
case GDK_GRAVITY_STATIC:
default:
mv_resize->moveresize_orig_x = rect.x;
mv_resize->moveresize_orig_y = rect.y;

View File

@@ -21,8 +21,6 @@ void gdk_gl_set_flags (GdkGLFlags flags);
void gdk_window_freeze_toplevel_updates (GdkWindow *window);
void gdk_window_thaw_toplevel_updates (GdkWindow *window);
gboolean gdk_window_supports_edge_constraints (GdkWindow *window);
GdkRenderingMode gdk_display_get_rendering_mode (GdkDisplay *display);
void gdk_display_set_rendering_mode (GdkDisplay *display,
GdkRenderingMode mode);

View File

@@ -13,7 +13,6 @@ G_BEGIN_DECLS
#mesondefine GDK_WINDOWING_X11
#mesondefine GDK_WINDOWING_BROADWAY
#mesondefine GDK_WINDOWING_WAYLAND
#mesondefine GDK_WINDOWING_WIN32
#mesondefine GDK_WINDOWING_MIR
#mesondefine GDK_RENDERING_VULKAN

Some files were not shown because too many files have changed in this diff Show More