| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
* src/pgtkterm.c (pgtk_flash): Return if the cairo surface is
not present. (bug#53420)
(pgtk_cr_update_surface_desired_size): Reformat comment.
|
| | |
|
| |
|
|
|
| |
* src/pgtkterm.c (pgtk_draw_glyph_string): Respect new underline
face fields.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This also repurposes the `pgtk-preedit-text' event to be
meaningful on X, renames it `preedit-text', and documents it.
* doc/lispref/commands.texi (Misc Events): Document
`preedit-text'.
* lisp/term/pgtk-win.el (pgtk-preedit-text): Bind to
`preedit-text' instead.
* lisp/term/x-win.el (x-preedit-overlay): New variable.
(x-preedit-text): New command, bound as a special event to
`preedit-text'.
* src/keyboard.c (kbd_buffer_get_event):
(make_lispy_event): Rename PGTK_PREEDIT_TEXT_EVENT
PREEDIT_TEXT_EVENT.
(syms_of_keyboard): New defsym `preedit-text'.
* src/pgtkterm.c (pgtk_enqueue_preedit): Use PREEDIT_TEXT_EVENT
instead.
* src/termhooks.h (enum event_kind): Rename
`PGTK_PREEDIT_TEXT_EVENT' `PREEDIT_TEXT_EVENT'.
* src/xfns.c (Xxic_preedit_draw_callback):
(Xxic_preedit_caret_callback):
(Xxic_preedit_done_callback):
(Xxic_preedit_start_callback): New callback variables.
(STYLE_OFFTHESPOT, STYLE_OVERTHESPOT):
(STYLE_ROOT, STYLE_CALLBACK, STYLE_NONE): New macros.
(supported_xim_styles): Use reasonable values. This also serves
as a better fix for bug#10867.
(best_xim_style): Restore code deleted as part of the original
fix for bug#10867.
(create_frame_xic): Add preedit callbacks.
(xic_set_preeditarea): Add preedit callbacks.
(x_xic_to_frame):
(xic_preedit_start_callback):
(xic_preedit_caret_callback):
(xic_preedit_done_callback):
(x_xim_text_to_utf8_unix):
(xic_preedit_draw_callback): New functions.
* src/xterm.c (x_detect_focus_change): Fix type of XI event.
(x_free_frame_resources): Free preedit text buffer if still
present.
* src/xterm.h (struct x_output): New fields `preedit_size',
`preedit_chars' and `preedit_active'.
|
| |
|
|
|
|
|
| |
* src/pgtkfns.c (Fx_create_frame): Fix child frame border
resource names.
* src/pgtkterm.c (pgtk_clear_under_internal_border): Fix test
for child frames. (bug#53018)
|
| |
|
|
|
| |
* src/pgtkterm.c (scroll_event): Fix scroll modifiers when
`mwheel-coalesce-scroll-events' is nil.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
* src/pgtkgui.h:
* src/pgtkim.c:
* src/pgtkmenu.c:
* src/pgtkselect.c:
* src/pgtkselect.h:
* src/pgtkterm.c:
* src/pgtkterm.h: Fix copyright dates to say '2021'.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* src/emacsgtkfixed.c (EMACS_FIXED_GET_CLASS): New function.
(struct GtkFixedPrivateL): New struct.
(emacs_fixed_gtk_widget_size_allocate):
(emacs_fixed_class_init): New functions.
* src/keyboard.h: Declare lispy_function_keys also when
HAVE_PGTK.
* src/pgtkterm.c (x_free_frame_resources): Destroy all xwidget
views.
(pgtk_scroll_run): Move xwidget views that overlap with the
scrolled area.
(pgtk_emacs_to_gtk_modifiers): Expose function.
* src/pgtkterm.h: Wrap in include guard.
(pgtk_emacs_to_gtk_modifiers): New prototype.
* src/xwidget.c (xw_forward_event_translate):
(xw_forward_event_from_view): New functions.
(Fmake_xwidget): Remove obsolete PGTK specific code.
(Fxwidget_perform_lispy_event): Convert modifiers correctly on
PGTK.
(define_cursors): Use GDK functions to define cursors on PGTK.
(xwidget_view_from_window): Disable on non-PGTK builds.
(xwidget_show_view):
(xwidget_hide_view): Implement on PGTK.
(xv_do_draw): Disable on non-PGTK builds.
(offscreen_damage_event): Queue xwidget views for draw.
(xwidget_expose): Disable on non-PGTK builds.
(xwidget_init_view):
(x_draw_xwidget_glyph_string):
(Fdelete_xwidget_view): Implement for PGTK.
(syms_of_xwidget): Don't initialize XID to widget table on PGTK.
(lower_frame_xwidget_views): Disable on PGTK.
* src/xwidget.h (struct xwidget_view): New fields for PGTK
builds.
(kill_frame_xwidget_views): Enable on PGTK.
|
| | |
|
| |
|
|
|
| |
* src/pgtkterm.c (pgtk_clear_under_internal_border): Don't clear
border if frame isn't realized. (bug#52705)
|
| | |
|
| | |
|
| |
|
|
|
| |
* src/pgtkterm.c (scroll_event): Fix for when
`mwheel-coalesce-scroll-events' is nil.
|
| |
|
|
|
| |
* src/pgtkterm.c (pgtk_draw_glyph_string): Draw box before any
text decorations.
|
| |
|
|
|
|
|
| |
* src/pgtkterm.c (pgtk_raise_frame): New function.
(pgtk_lower_frame): New function.
(pgtk_frame_raise_lower): New function to call one of those.
(pgtk_create_terminal): Set frame_raise_lower_hook.
|
| |
|
|
| |
* src/pgtkterm.c (button_event): Fix coding style.
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* src/pgtkfns.c (frame_geometry):
* src/pgtkterm.c (x_set_parent_frame):
(pgtk_text_icon):
(key_release_event):
(configure_event):
(map_event):
(window_state_event):
(delete_event):
(enter_notify_event): Fix coding style.
|
| | | |
|
| |/
|
|
|
|
|
|
|
|
|
|
|
| |
I Got css provider from F, and was going to remove it from style
context. But between them, unhighlight was called when
gtk_container_remove was called, and the css provider was already
freed, so I can't use the css provider to remove it from style
context.
As a fix, I call gtk_container_remove after remove it.
Also, I free a css provider set by unhighlight.
* src/pgtkterm.c (x_set_parent_frame):
|
| |
|
|
|
|
|
|
|
|
| |
* src/pgtkterm.c (pgtk_update_end): Stop flipping buffers here.
(pgtk_frame_up_to_date)
(pgtk_buffer_flipping_unblocked_hook): New function.
(pgtk_create_terminal): Attach new hooks.
(leave_notify_event): Clear mouse face.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Otherwise texts become blurry when a frame moved from 1x monitor
to 2x monitor. I need GTK's such signal, but there isn't. Instead
I watch frame's monitor's scale factor periodically. We can see
blurriness for a short time, but it is gone soon.
* src/pgtkfns.c (update_watched_scale_factor): New function to check
scale factor and recreate cairo_surface_t if changed.
* src/pgtkfns.c (Fx_create_frame): Initialize atimer.
(Fx_show_tip): Add an argument.
* src/pgtkterm.c (FRAME_CR_SURFACE_DESIRED_WIDTH): Move macros to pgtkterm.h
(x_free_frame_resources): Free atimer.
(size_allocate): Add an argument.
(pgtk_cr_update_surface_desired_size): Add an argument. Recreate if it
is true.
* src/pgtkterm.h (struct pgtk_output): New members.
(FRAME_CR_SURFACE_DESIRED_HEIGHT): Move macros from pgtkterm.c
|
| |
|
|
|
|
|
| |
* src/pgtkterm.c (set_fullscreen_state): Fix a compilation warning
(bug#52260).
Copyright-paperwork-exempt: yes
|
| |
|
|
| |
* src/pgtkterm.c (scroll_event): Generate touch end events.
|
| |
|
|
|
|
| |
* src/pgtkterm.c (scroll_event): Use
`mwheel_coalesce_scroll_events'.
(x_coalesce_scroll_events): Remove variable.
|
| |
|
|
|
| |
* src/pgtkterm.c (x_draw_image_relief):
(button_event): Synchronize code with xterm. (Bug#50779)
|
| |
|
|
|
| |
* src/pgtkterm.c (scroll_event): Fix scroll delta
factor. (bug#52195)
|
| |
|
|
|
|
|
|
|
| |
* src/pgtkterm.c (pgtk_delete_terminal): Close display fd if it
exists.
(pgtk_term_init): Set up interrupt handling for display fd if
available.
* src/pgtkterm.h (struct pgtk_display_info): Add `connection'
field.
|
| |
|
|
| |
* src/pgtkterm.c (x_set_mouse_face_gc): Remove obsolete code.
|
| |
|
|
|
|
| |
* src/pgtkterm.c (scroll_event): Generate enhanced wheel
events.
(x_coalesce_scroll_events): New variable.
|
| |
|
|
|
|
|
|
|
| |
* src/pgtkmenu.c (pgtk_menu_wait_for_event): Get rid
of pgtk_select.
* src/pgtkterm.h (pgtk_select):
* src/pgtkterm.c (pgtk_select): Delete function.
* src/process.c (wait_reading_process_output): Stop
using pgtk_select.
|
| |
|
|
| |
* src/pgtkterm.c (pgtk_flash):
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* src/gtkutil.c (xg_create_frame_widgets):
* src/pgtkfns.c (Fx_create_frame):
(frame_geometry):
* src/pgtkterm.c (pgtk_mouse_position):
(pgtk_redisplay_interface):
(pgtk_clear_frame):
(pgtk_create_terminal):
(struct pgtk_window_is_of_frame_recursive_t):
(key_press_event):
(syms_of_pgtkterm):
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* src/gtkutil.c:
(xg_create_frame_widgets):
(xg_create_frame_outer_widgets):
(x_wm_set_size_hint):
(xg_set_toolkit_scroll_bar_thumb):
* src/pgtkfns.c (x_set_background_color):
(pgtk_set_name):
(x_explicitly_set_name):
(pgtk_implicitly_set_name):
(x_set_title):
(Fx_create_frame):
(Fpgtk_set_mouse_absolute_pixel_position):
(pgtk_log):
(pgtk_backtrace):
* src/pgtkselect.c (get_func):
(clear_func):
(pgtk_selection_lost):
(Fpgtk_own_selection_internal):
(Fpgtk_disown_selection_internal):
(Fpgtk_selection_exists_p):
(Fpgtk_selection_owner_p):
(nxatoms_of_pgtkselect):
(syms_of_pgtkselect):
* src/pgtkterm.c (flip_cr_context):
(get_keysym_name):
(frame_set_mouse_pixel_position):
(x_free_frame_resources):
(x_destroy_window):
(x_set_offset):
(pgtk_set_window_size):
(pgtk_iconify_frame):
(pgtk_make_frame_visible):
(pgtk_make_frame_invisible):
(pgtk_new_font):
(x_display_pixel_height):
(x_display_pixel_width):
(x_set_no_focus_on_map):
(x_set_no_accept_focus):
(x_set_z_group):
(x_set_cursor_gc):
(x_set_glyph_string_gc):
(x_set_glyph_string_clipping):
(x_draw_glyph_string_background):
(pgtk_draw_glyph_string):
(pgtk_after_update_window_line):
(pgtk_clear_frame_area):
(pgtk_draw_window_cursor):
(pgtk_copy_bits):
(pgtk_cr_draw_image):
(pgtk_draw_fringe_bitmap):
(pgtk_redraw_scroll_bars):
(pgtk_clear_frame):
(pgtk_read_socket):
(pgtk_select):
(xg_scroll_callback):
(xg_end_scroll_callback):
(pgtk_set_vertical_scroll_bar):
(set_fullscreen_state):
(pgtk_fullscreen_hook):
(pgtk_handle_event):
(pgtk_fill_rectangle):
(pgtk_clear_under_internal_border):
(print_widget_tree_recursive):
(print_widget_tree):
(pgtk_handle_draw):
(size_allocate):
(key_press_event):
(key_release_event):
(map_event):
(delete_event):
(enter_notify_event):
(leave_notify_event):
(focus_in_event):
(focus_out_event):
(motion_notify_event):
(button_event):
(scroll_event):
(drag_data_received):
(pgtk_xlfd_to_fontname):
(pgtk_defined_color):
(pgtk_parse_color):
(pgtk_query_colors):
(pgtk_query_color):
(pgtk_clear_area):
(pgtk_cr_update_surface_desired_size):
(pgtk_begin_cr_clip):
(pgtk_end_cr_clip):
(pgtk_set_cr_source_with_gc_foreground):
(pgtk_set_cr_source_with_gc_background):
(pgtk_set_cr_source_with_color):
(pgtk_cr_draw_frame):
(pgtk_cr_destroy_frame_context):
* src/pgtkterm.h:
|
| | |
|
| |
|
|
|
|
|
| |
Just above, f1 can become a selected frame, which may be a terminal
frame. We can't call gtk_widget_get_window() for a terminal frame.
* src/pgtkterm.c (pgtk_mouse_position): Return if it is not a pgtk frame.
|
| |
|
|
|
|
| |
* src/gtkutil.c (xg_set_no_accept_focus):
* src/pgtkterm.c (pgtk_focus_frame):
(button_event):
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
child frames on pgtk are gtk widgets inside the parent surface, rather
than subsurfaces (in wayland ters), and the edit widget is handled
separately from the parent window, so we need to handle signals more
correctly, rather than squinting and assuming an event for the window
is just an event for the edit widget.
* src/gtkutil.c (xg_set_no_accept_focus): set
focus on widget rather than request it on window
* src/pgtkterm.c (pgtk_focus_frame): focus frame on edit_widget
instead
(button_event): Implement focus calls to replace dead X calls
|
| |
|
|
|
| |
* src/pgtkterm.c (x_draw_stretch_glyph_string): s/foreground/background
(Bug#50579)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Especially, insert a space between function name and paren.
* src/alloc.c (garbage_collect):
* src/font.h:
* src/frame.h:
* src/fringe.c:
* src/gtkutil.c (xg_set_screen):
(xg_create_frame_widgets):
(xg_create_frame_outer_widgets):
(xg_get_file_name):
(xg_get_font):
(xg_update_scrollbar_pos):
* src/image.c (image_create_bitmap_from_file):
(xpm_load_image):
* src/pgtkfns.c (pgtk_get_monitor_scale_factor):
(is_wayland_display):
(pgtk_display_info_for_name):
(INSTALL_CURSOR):
(Fx_create_frame):
(Fx_display_mm_height):
(Fx_display_mm_width):
(Fx_display_pixel_width):
(Fx_display_pixel_height):
* src/pgtkselect.c (pgtk_selection_usable):
(Fpgtk_own_selection_internal):
(Fpgtk_get_selection_internal):
* src/pgtkterm.c:
(x_set_parent_frame):
(pgtk_draw_fringe_bitmap):
(pgtk_handle_draw):
(scroll_event):
(pgtk_text_scaling_factor):
(pgtk_term_init):
* src/pgtkterm.h:
* src/window.h:
* src/xdisp.c (redisplay_internal):
(draw_glyphs_debug):
(draw_glyphs):
(note_mouse_highlight):
|
| |
|
|
|
|
|
| |
* src/pgtkterm.c (pgtk_draw_fringe_bitmap): we had an unbalanced
cairo_save/restore.
Copyright-paperwork-exempt: yes
|
| |
|
|
|
| |
* src/pgtkterm.c (size_allocate): Get frame pointer through user_data.
(pgtk_set_event_handler): Pass it.
|
| | |
|
| |
|
|
|
| |
* src/pgtkterm.c (x_find_modifier_meanings): If super_mod_mask and
hyper_mod_mask are equal, then disable hyper.
|
| |
|
|
|
| |
* src/pgtkterm.c (pgtk_set_window_size): Remove "pixelwise" arg,
which is already non-existent.
|
| |
|
|
|
|
| |
This reverts commit 8a649cba44cc637b5326cee9fe3febc55c653719.
Because the position of the initial frame is not desired, unless
initial-frame-alist is set.
|
| |
|
|
|
|
|
|
|
|
|
| |
Pgtk didn't update text and C-g didn't take effect while it is busy.
By timer interrupts, we can call pgtk_read_socket, and update texts
and handle C-g.
* src/pgtkterm.c (start_timer): New function to start timer.
(pgtk_show_hourglass): Remove code to start timer.
(pgtk_hide_hourglass): Remove code to stop timer.
(pgtk_term_init): Call start_timer().
|
| |
|
|
|
|
|
| |
* src/pgtkterm.c (pgtk_update_window_begin):
(pgtk_update_window_end):
(pgtk_redisplay_interface): Remove duplicate code and default to the
generic gui_update_window_begin/end implementations
|