diff options
| author | Yuuki Harano | 2021-12-07 00:46:39 +0900 |
|---|---|---|
| committer | Yuuki Harano | 2021-12-07 00:46:39 +0900 |
| commit | 0b6a632f99214e2d1e9e1d72b8f8b3a7f054d552 (patch) | |
| tree | 82d356207a4843f8ff8313bd2cdfa7c4698b78a3 /src | |
| parent | f68a0314e3ca522d1a86eae6cc909c1a5381ac3b (diff) | |
| parent | 9eba6b966e330a38bdc3fef5e36b8a2904e72785 (diff) | |
| download | emacs-0b6a632f99214e2d1e9e1d72b8f8b3a7f054d552.tar.gz emacs-0b6a632f99214e2d1e9e1d72b8f8b3a7f054d552.zip | |
Merge branch 'feature/pgtk' of git.sv.gnu.org:/srv/git/emacs into feature/pgtk
Diffstat (limited to 'src')
| -rw-r--r-- | src/gtkutil.c | 5 | ||||
| -rw-r--r-- | src/image.c | 6 | ||||
| -rw-r--r-- | src/pgtkfns.c | 28 | ||||
| -rw-r--r-- | src/pgtkterm.c | 43 | ||||
| -rw-r--r-- | src/xdisp.c | 6 |
5 files changed, 57 insertions, 31 deletions
diff --git a/src/gtkutil.c b/src/gtkutil.c index d872d393caf..225984af41a 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c | |||
| @@ -684,8 +684,13 @@ xg_check_special_colors (struct frame *f, | |||
| 684 | block_input (); | 684 | block_input (); |
| 685 | { | 685 | { |
| 686 | #ifdef HAVE_GTK3 | 686 | #ifdef HAVE_GTK3 |
| 687 | #ifndef HAVE_PGTK | ||
| 687 | GtkStyleContext *gsty | 688 | GtkStyleContext *gsty |
| 688 | = gtk_widget_get_style_context (FRAME_GTK_OUTER_WIDGET (f)); | 689 | = gtk_widget_get_style_context (FRAME_GTK_OUTER_WIDGET (f)); |
| 690 | #else | ||
| 691 | GtkStyleContext *gsty | ||
| 692 | = gtk_widget_get_style_context (FRAME_WIDGET (f)); | ||
| 693 | #endif | ||
| 689 | GdkRGBA col; | 694 | GdkRGBA col; |
| 690 | char buf[sizeof "rgb://rrrr/gggg/bbbb"]; | 695 | char buf[sizeof "rgb://rrrr/gggg/bbbb"]; |
| 691 | int state = GTK_STATE_FLAG_SELECTED|GTK_STATE_FLAG_FOCUSED; | 696 | int state = GTK_STATE_FLAG_SELECTED|GTK_STATE_FLAG_FOCUSED; |
diff --git a/src/image.c b/src/image.c index 3ba3d572b05..f8188292d46 100644 --- a/src/image.c +++ b/src/image.c | |||
| @@ -9101,7 +9101,7 @@ webp_load (struct frame *f, struct image *img) | |||
| 9101 | { | 9101 | { |
| 9102 | ptrdiff_t size = 0; | 9102 | ptrdiff_t size = 0; |
| 9103 | uint8_t *contents; | 9103 | uint8_t *contents; |
| 9104 | Lisp_Object file; | 9104 | Lisp_Object file = Qnil; |
| 9105 | 9105 | ||
| 9106 | /* Open the WebP file. */ | 9106 | /* Open the WebP file. */ |
| 9107 | Lisp_Object specified_file = image_spec_value (img->spec, QCfile, NULL); | 9107 | Lisp_Object specified_file = image_spec_value (img->spec, QCfile, NULL); |
| @@ -9138,7 +9138,7 @@ webp_load (struct frame *f, struct image *img) | |||
| 9138 | /* Validate the WebP image header. */ | 9138 | /* Validate the WebP image header. */ |
| 9139 | if (!WebPGetInfo (contents, size, NULL, NULL)) | 9139 | if (!WebPGetInfo (contents, size, NULL, NULL)) |
| 9140 | { | 9140 | { |
| 9141 | if (NILP (specified_data)) | 9141 | if (!NILP (file)) |
| 9142 | image_error ("Not a WebP file: `%s'", file); | 9142 | image_error ("Not a WebP file: `%s'", file); |
| 9143 | else | 9143 | else |
| 9144 | image_error ("Invalid header in WebP image data"); | 9144 | image_error ("Invalid header in WebP image data"); |
| @@ -9161,7 +9161,7 @@ webp_load (struct frame *f, struct image *img) | |||
| 9161 | case VP8_STATUS_USER_ABORT: | 9161 | case VP8_STATUS_USER_ABORT: |
| 9162 | default: | 9162 | default: |
| 9163 | /* Error out in all other cases. */ | 9163 | /* Error out in all other cases. */ |
| 9164 | if (NILP (specified_data)) | 9164 | if (!NILP (file)) |
| 9165 | image_error ("Error when interpreting WebP image data: `%s'", file); | 9165 | image_error ("Error when interpreting WebP image data: `%s'", file); |
| 9166 | else | 9166 | else |
| 9167 | image_error ("Error when interpreting WebP image data"); | 9167 | image_error ("Error when interpreting WebP image data"); |
diff --git a/src/pgtkfns.c b/src/pgtkfns.c index 74591452fb6..5fc5bb4bf22 100644 --- a/src/pgtkfns.c +++ b/src/pgtkfns.c | |||
| @@ -3551,17 +3551,23 @@ frame_geometry (Lisp_Object frame, Lisp_Object attribute) | |||
| 3551 | 3551 | ||
| 3552 | /* Get these here because they can't be got in configure_event(). */ | 3552 | /* Get these here because they can't be got in configure_event(). */ |
| 3553 | int left_pos, top_pos; | 3553 | int left_pos, top_pos; |
| 3554 | if (FRAME_GTK_OUTER_WIDGET (f)) { | 3554 | |
| 3555 | gtk_window_get_position (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), | 3555 | if (FRAME_GTK_OUTER_WIDGET (f)) |
| 3556 | &left_pos, &top_pos); | 3556 | { |
| 3557 | } else { | 3557 | gtk_window_get_position (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), |
| 3558 | if (FRAME_GTK_WIDGET (f) == NULL) | 3558 | &left_pos, &top_pos); |
| 3559 | return Qnil; /* This can occur while creating a frame. */ | 3559 | } |
| 3560 | GtkAllocation alloc; | 3560 | else |
| 3561 | gtk_widget_get_allocation (FRAME_GTK_WIDGET (f), &alloc); | 3561 | { |
| 3562 | left_pos = alloc.x; | 3562 | GtkAllocation alloc; |
| 3563 | top_pos = alloc.y; | 3563 | |
| 3564 | } | 3564 | if (FRAME_GTK_WIDGET (f) == NULL) |
| 3565 | return Qnil; /* This can occur while creating a frame. */ | ||
| 3566 | |||
| 3567 | gtk_widget_get_allocation (FRAME_GTK_WIDGET (f), &alloc); | ||
| 3568 | left_pos = alloc.x; | ||
| 3569 | top_pos = alloc.y; | ||
| 3570 | } | ||
| 3565 | 3571 | ||
| 3566 | int native_left = left_pos + border; | 3572 | int native_left = left_pos + border; |
| 3567 | int native_top = top_pos + border + title_height; | 3573 | int native_top = top_pos + border + title_height; |
diff --git a/src/pgtkterm.c b/src/pgtkterm.c index 4bfe2efbdc5..1e8d49c1d1b 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c | |||
| @@ -803,7 +803,8 @@ x_set_parent_frame (struct frame *f, Lisp_Object new_value, | |||
| 803 | FRAME_X_OUTPUT (f)->border_color_css_provider = NULL; | 803 | FRAME_X_OUTPUT (f)->border_color_css_provider = NULL; |
| 804 | { | 804 | { |
| 805 | GtkStyleContext *ctxt = gtk_widget_get_style_context (FRAME_WIDGET (f)); | 805 | GtkStyleContext *ctxt = gtk_widget_get_style_context (FRAME_WIDGET (f)); |
| 806 | gtk_style_context_remove_provider (ctxt, GTK_STYLE_PROVIDER (provider)); | 806 | if (provider != NULL) |
| 807 | gtk_style_context_remove_provider (ctxt, GTK_STYLE_PROVIDER (provider)); | ||
| 807 | } | 808 | } |
| 808 | 809 | ||
| 809 | { | 810 | { |
| @@ -850,8 +851,11 @@ x_set_parent_frame (struct frame *f, Lisp_Object new_value, | |||
| 850 | GtkStyleContext *ctxt = gtk_widget_get_style_context (FRAME_WIDGET (f)); | 851 | GtkStyleContext *ctxt = gtk_widget_get_style_context (FRAME_WIDGET (f)); |
| 851 | GtkCssProvider *old = FRAME_X_OUTPUT (f)->border_color_css_provider; | 852 | GtkCssProvider *old = FRAME_X_OUTPUT (f)->border_color_css_provider; |
| 852 | FRAME_X_OUTPUT (f)->border_color_css_provider = provider; | 853 | FRAME_X_OUTPUT (f)->border_color_css_provider = provider; |
| 853 | gtk_style_context_add_provider (ctxt, GTK_STYLE_PROVIDER (provider), | 854 | if (provider != NULL) |
| 854 | GTK_STYLE_PROVIDER_PRIORITY_USER); | 855 | { |
| 856 | gtk_style_context_add_provider (ctxt, GTK_STYLE_PROVIDER (provider), | ||
| 857 | GTK_STYLE_PROVIDER_PRIORITY_USER); | ||
| 858 | } | ||
| 855 | if (old != NULL) | 859 | if (old != NULL) |
| 856 | { | 860 | { |
| 857 | gtk_style_context_remove_provider (ctxt, GTK_STYLE_PROVIDER (old)); | 861 | gtk_style_context_remove_provider (ctxt, GTK_STYLE_PROVIDER (old)); |
| @@ -3050,10 +3054,11 @@ pgtk_bitmap_icon (struct frame *f, Lisp_Object file) | |||
| 3050 | bool | 3054 | bool |
| 3051 | pgtk_text_icon (struct frame *f, const char *icon_name) | 3055 | pgtk_text_icon (struct frame *f, const char *icon_name) |
| 3052 | { | 3056 | { |
| 3053 | if (FRAME_GTK_OUTER_WIDGET (f)) { | 3057 | if (FRAME_GTK_OUTER_WIDGET (f)) |
| 3054 | gtk_window_set_icon (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), NULL); | 3058 | { |
| 3055 | gtk_window_set_title (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), icon_name); | 3059 | gtk_window_set_icon (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), NULL); |
| 3056 | } | 3060 | gtk_window_set_title (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), icon_name); |
| 3061 | } | ||
| 3057 | 3062 | ||
| 3058 | return false; | 3063 | return false; |
| 3059 | } | 3064 | } |
| @@ -5379,13 +5384,17 @@ done: | |||
| 5379 | } | 5384 | } |
| 5380 | 5385 | ||
| 5381 | static gboolean | 5386 | static gboolean |
| 5382 | key_release_event (GtkWidget * widget, GdkEvent * event, gpointer * user_data) | 5387 | key_release_event (GtkWidget *widget, |
| 5388 | GdkEvent *event, | ||
| 5389 | gpointer *user_data) | ||
| 5383 | { | 5390 | { |
| 5384 | return TRUE; | 5391 | return TRUE; |
| 5385 | } | 5392 | } |
| 5386 | 5393 | ||
| 5387 | static gboolean | 5394 | static gboolean |
| 5388 | configure_event (GtkWidget * widget, GdkEvent * event, gpointer * user_data) | 5395 | configure_event (GtkWidget *widget, |
| 5396 | GdkEvent *event, | ||
| 5397 | gpointer *user_data) | ||
| 5389 | { | 5398 | { |
| 5390 | struct frame *f = pgtk_any_window_to_frame (event->configure.window); | 5399 | struct frame *f = pgtk_any_window_to_frame (event->configure.window); |
| 5391 | if (f && widget == FRAME_GTK_OUTER_WIDGET (f)) | 5400 | if (f && widget == FRAME_GTK_OUTER_WIDGET (f)) |
| @@ -5405,7 +5414,9 @@ configure_event (GtkWidget * widget, GdkEvent * event, gpointer * user_data) | |||
| 5405 | } | 5414 | } |
| 5406 | 5415 | ||
| 5407 | static gboolean | 5416 | static gboolean |
| 5408 | map_event (GtkWidget * widget, GdkEvent * event, gpointer * user_data) | 5417 | map_event (GtkWidget *widget, |
| 5418 | GdkEvent *event, | ||
| 5419 | gpointer *user_data) | ||
| 5409 | { | 5420 | { |
| 5410 | struct frame *f = pgtk_any_window_to_frame (event->any.window); | 5421 | struct frame *f = pgtk_any_window_to_frame (event->any.window); |
| 5411 | union buffered_input_event inev; | 5422 | union buffered_input_event inev; |
| @@ -5452,8 +5463,9 @@ map_event (GtkWidget * widget, GdkEvent * event, gpointer * user_data) | |||
| 5452 | } | 5463 | } |
| 5453 | 5464 | ||
| 5454 | static gboolean | 5465 | static gboolean |
| 5455 | window_state_event (GtkWidget * widget, GdkEvent * event, | 5466 | window_state_event (GtkWidget *widget, |
| 5456 | gpointer * user_data) | 5467 | GdkEvent *event, |
| 5468 | gpointer *user_data) | ||
| 5457 | { | 5469 | { |
| 5458 | struct frame *f = pgtk_any_window_to_frame (event->window_state.window); | 5470 | struct frame *f = pgtk_any_window_to_frame (event->window_state.window); |
| 5459 | union buffered_input_event inev; | 5471 | union buffered_input_event inev; |
| @@ -5486,7 +5498,8 @@ window_state_event (GtkWidget * widget, GdkEvent * event, | |||
| 5486 | } | 5498 | } |
| 5487 | 5499 | ||
| 5488 | static gboolean | 5500 | static gboolean |
| 5489 | delete_event (GtkWidget * widget, GdkEvent * event, gpointer * user_data) | 5501 | delete_event (GtkWidget *widget, |
| 5502 | GdkEvent *event, gpointer *user_data) | ||
| 5490 | { | 5503 | { |
| 5491 | struct frame *f = pgtk_any_window_to_frame (event->any.window); | 5504 | struct frame *f = pgtk_any_window_to_frame (event->any.window); |
| 5492 | union buffered_input_event inev; | 5505 | union buffered_input_event inev; |
| @@ -5561,8 +5574,8 @@ x_focus_changed (gboolean is_enter, int state, | |||
| 5561 | } | 5574 | } |
| 5562 | 5575 | ||
| 5563 | static gboolean | 5576 | static gboolean |
| 5564 | enter_notify_event (GtkWidget * widget, GdkEvent * event, | 5577 | enter_notify_event (GtkWidget *widget, GdkEvent *event, |
| 5565 | gpointer * user_data) | 5578 | gpointer *user_data) |
| 5566 | { | 5579 | { |
| 5567 | union buffered_input_event inev; | 5580 | union buffered_input_event inev; |
| 5568 | struct frame *frame = | 5581 | struct frame *frame = |
diff --git a/src/xdisp.c b/src/xdisp.c index 080c9063cd7..971015e0a35 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -30294,7 +30294,8 @@ produce_stretch_glyph (struct it *it) | |||
| 30294 | Compute the width of the characters having this `display' | 30294 | Compute the width of the characters having this `display' |
| 30295 | property. */ | 30295 | property. */ |
| 30296 | struct it it2; | 30296 | struct it it2; |
| 30297 | Lisp_Object object = it->stack[it->sp - 1].string; | 30297 | Lisp_Object object = |
| 30298 | it->sp > 0 ? it->stack[it->sp - 1].string : it->string; | ||
| 30298 | unsigned char *p = (STRINGP (object) | 30299 | unsigned char *p = (STRINGP (object) |
| 30299 | ? SDATA (object) + IT_STRING_BYTEPOS (*it) | 30300 | ? SDATA (object) + IT_STRING_BYTEPOS (*it) |
| 30300 | : BYTE_POS_ADDR (IT_BYTEPOS (*it))); | 30301 | : BYTE_POS_ADDR (IT_BYTEPOS (*it))); |
| @@ -30396,7 +30397,8 @@ produce_stretch_glyph (struct it *it) | |||
| 30396 | if (width > 0 && height > 0 && it->glyph_row) | 30397 | if (width > 0 && height > 0 && it->glyph_row) |
| 30397 | { | 30398 | { |
| 30398 | Lisp_Object o_object = it->object; | 30399 | Lisp_Object o_object = it->object; |
| 30399 | Lisp_Object object = it->stack[it->sp - 1].string; | 30400 | Lisp_Object object = |
| 30401 | it->sp > 0 ? it->stack[it->sp - 1].string : it->string; | ||
| 30400 | int n = width; | 30402 | int n = width; |
| 30401 | 30403 | ||
| 30402 | if (!STRINGP (object)) | 30404 | if (!STRINGP (object)) |