aboutsummaryrefslogtreecommitdiffstats
path: root/src/pgtkterm.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* More PGTK related cleanupPo Lu2022-04-151-8/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/pgtkfns.c (x_set_foreground_color, x_set_background_color) (x_set_border_color, x_set_cursor_color, x_set_title) (x_set_menu_bar_lines, x_set_tab_bar_lines, x_set_tool_bar_lines) (x_set_child_frame_border_width, x_set_internal_border_width) (x_set_icon_type, x_set_icon_name, x_set_cursor_type) (x_set_mouse_color, x_set_undecorated, x_set_skip_taskbar) (x_set_override_redirect, pgtk_frame_parm_handlers) (Fx_create_frame): Rename most `x_' functions to `pgtk_' ones. All callers changed. * src/pgtkmenu.c (Fx_menu_bar_open_internal): Remove duplicate doc string definition. * src/pgtkterm.c (x_set_offset, pgtk_iconify_frame) (x_set_parent_frame, x_set_no_focus_on_map, x_set_no_accept_focus) (x_set_z_group, x_set_cursor_gc, x_set_mouse_face_gc) (x_set_mode_line_face_gc, x_set_glyph_string_gc) (x_set_glyph_string_clipping, x_set_glyph_string_clipping_exactly) (x_setup_relief_color, x_setup_relief_colors) (x_set_clip_rectangles, x_draw_relief_rect, x_draw_box_rect) (x_draw_glyph_string_box, x_draw_image_relief) (x_draw_image_foreground, x_draw_stretch_glyph_string) (pgtk_draw_glyph_string, x_set_toolkit_scroll_bar_thumb) (x_set_toolkit_horizontal_scroll_bar_thumb) (pgtk_set_vertical_scroll_bar, pgtk_set_horizontal_scroll_bar) (x_set_frame_alpha, frame_highlight, frame_unhighlight) (pgtk_create_terminal, map_event): Rename most `x_' functions to `pgtk_' ones. All callers changed. * src/pgtkterm.h: Update prototypes.
* Clean up PGTK code morePo Lu2022-04-131-3/+0
| | | | | | | | | | | | | | | | * src/pgtkterm.c (STORE_KEYSYM_FOR_DEBUG): Delete macro. (x_find_modifier_meanings): Delete function. (get_modifier_values, pgtk_gtk_to_emacs_modifiers) (pgtk_emacs_to_gtk_modifiers): Use GDK's own modifier mask constants instead of detecting our own from the keymap. This does mean a specific "meta" key will no longer be detected on X Windows, but that interface doesn't exist on Wayland, and X users should use the X port anyway. (key_press_event): Avoid decoding input text. (pgtk_term_init): Stop computing modifiers. (syms_of_pgtkterm): Delete obsolete comment. * src/pgtkterm.h (struct pgtk_display_info): Delete modifier masks.
* Implement support for reporting device names on PGTKPo Lu2022-04-081-63/+14
| | | | | | | | | | | | | | | | | | | | * lisp/frame.el (device-class): Add new function. * lisp/term/pgtk-win.el (pgtk-device-class): New function. * src/pgtkterm.c (pgtk_device_added_or_removal_cb) (pgtk_seat_added_cb, pgtk_seat_removed_cb) (pgtk_enumerate_devices) (pgtk_free_devices, pgtk_regenerate_devices) (pgtk_get_device_for_event): New functions. (mark_pgtkterm): Mark device data. (pgtk_delete_terminal): Delete device data. (pgtk_handle_event, key_press_event, note_mouse_movement) (construct_mouse_click, button_event, scroll_event) (drag_data_received): Set device correctly. (pgtk_term_init): Initialize device data and seat tracking. (pgtk_delete_display): Delete device data. * src/pgtkterm.h (struct pgtk_device_t): New struct. (struct pgtk_display_info): New field `devices'. Delete lots of unused macros and reformat comments.
* Remove more code mindlessly copied from NSPo Lu2022-04-071-3/+0
| | | | | | | * src/pgtkfns.c (Fx_open_connection): * src/pgtkselect.c (nxatoms_of_pgtkselect): * src/pgtkselect.h: * src/pgtkterm.h: Delete `nxatoms_of_pgtkselect'.
* Clean up PGTK cursor blanking codePo Lu2022-03-271-3/+0
| | | | | | | | | | | | | | * src/pgtkterm.c (XTframe_rehighlight): Rename to `pgtk_frame_rehighlight_hook'. All callers changed. (x_toggle_visible_pointer): Rename to `pgtk_toggle_visible_pointer'. All callers changed. (x_setup_pointer_blanking, XTtoggle_invisible_pointer): Delete functions. (pgtk_create_terminal): Use new names for various hooks. (pgtk_term_init): Set up blank cursor directly. * src/pgtkterm.h (struct pgtk_display_info): Remove `toggle_visible_pointer'.
* Implement `alpha-background' on PGTKPo Lu2022-01-311-6/+3
| | | | | | | | | | | | | | | | | | | * src/ftcrfont.c (ftcrfont_draw): Respect alpha-background where appropriate. * src/gtkutil.c (xg_create_frame_widgets): Swap some conditionals around to get the right visual and signal handlers on PGTK. (xg_widget_style_updated): Likewise. * src/pgtkfns.c (pgtk_set_alpha_background): New function. (pgtk_frame_parm_handlers): Add it instead of the generic param handler. (Fx_create_frame): Fix typo. * src/pgtkterm.c (pgtk_fill_rectangle): (pgtk_set_cr_source_with_gc_foreground): (pgtk_set_cr_source_with_gc_background): (pgtk_set_cr_source_with_color): New argument `respect_alpha_backend'. All callers changed. * src/pgtkterm.h: Update function prototypes.
* ; Add 2022 to copyright years.Eli Zaretskii2022-01-011-1/+1
|
* Fix copyright dates in some files belonging to the pgtk portPo Lu2021-12-311-1/+1
| | | | | | | | | | * 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'.
* Add support for xwidgets to the PGTK portPo Lu2021-12-291-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* Keep track of scale factor by atimer and recreate cairo_surface_tYuuki Harano2021-12-041-1/+12
| | | | | | | | | | | | | | | | | | | 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
* Make interrupt input optionally work on PGTKPo Lu2021-11-301-0/+2
| | | | | | | | | * 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.
* Get rid of pgtk_select and use xg_select insteadPo Lu2021-11-301-3/+0
| | | | | | | | | * 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.
* Remove PGTK_DEBUG stuffYuuki Harano2021-11-241-14/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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:
* Fix coding styleYuuki Harano2021-11-141-21/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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):
* Support frame-scale-factor on pgtk framesYuuki Harano2021-06-051-0/+2
| | | | | | | * src/pgtkfns.c (pgtk_frame_scale_factor): New function to get frame scale factor. * src/frame.h: Call it when a pgtk frame. * src/pgtkterm.h: Add the declaration.
* Add support for setting cursor location using Gtk IM ContextYichao Yu2021-01-301-0/+2
| | | | | | | | | | | | The existing XIC implementation doesn't work when using Gtk IM Context. Instead, `gtk_im_context_set_cursor_location` should be used to update the cursor information for the input method. * src/pgtkim.c (pgtk_im_set_cursor_location): New function to tell gtk cursor location. * src/pgtkterm.c (pgtk_draw_window_cursor): Remove invalid code and add new code to call the function. * src/pgtkterm.h: Add the function declaration.
* Improve smooth scrollYuuki Harano2020-11-281-0/+6
| | | | | | | * src/pgtkterm.c (scroll_event): Accumulate deltas and calculate the number of lines. (pgtk_term_init): Set smooth scroll parameters. * src/pgtkterm.h (scroll): New members to store parameters.
* Add support for hyper modifier keyYuuki Harano2020-11-261-1/+1
| | | | | | | | * src/pgtkterm.c (x_find_modifier_meanings): Autodetect key mask. (pgtk_gtk_to_emacs_modifiers): Use autodetected mask instead of GDK's. (pgtk_emacs_to_gtk_modifiers): Use autodetected mask instead of GDK's. (key_press_event): Ignore hyper as well as super. * src/pgtkterm.h (struct pgtk_display_info): New member for hyper.
* Work around gtk_im_context_filter_keypress() issue with super keyYuuki Harano2020-11-241-1/+1
| | | | | | | | | | * src/pgtkterm.c (x_find_modifier_meanings): Convert virtual super to non-virtual one. (pgtk_gtk_to_emacs_modifiers): Use non-virtual one. (pgtk_emacs_to_gtk_modifiers): Use non-virtual one. (key_press_event): Don't call pgtk_im_context_filter_keypress while super is pressed. * src/pgtkterm.h (struct pgtk_display_info): New member.
* Update copyright dates for PGTK filesJeff Walsh2020-11-241-1/+1
| | | | | | | | | | | * src/pgtkfns.c: * src/pgtkgui.h: * src/pgtkim.c: * src/pgtkmenu.c: * src/pgtkselect.c: * src/pgtkselect.h: * src/pgtkterm.c: * src/pgtkterm.h: Update copyright dates - No Funtional Changes
* Fix startup failure on svg-unsupported environmentsYuuki Harano2020-11-241-0/+8
| | | | | | | * src/pgtkterm.c (pgtk_bitmap_icon): Re-port X-code. (pgtk_term_init): Add member initialization. * src/pgtkterm.h (struct pgtk_display_info): Add member. (struct pgtk_output): Add member.
* Re-implement childframe with emacsgtkfixedYuuki Harano2020-11-241-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/emacsgtkfixed.c (G_DEFINE_TYPE): Make emacs_fixed_get_type public. * src/emacsgtkfixed.h (EMACS_TYPE_FIXED): Make emacs_fixed_get_type public. * src/gtkutil.c (xg_frame_set_char_size): Call appropriate functions by whether the frame is a child frame or not. (xg_create_frame_widgets): Use GTK_WINDOW_TOPLEVEL when creating child frame. (xg_create_frame_outer_widgets): New function. (xg_set_skip_taskbar): Call only when top-level frame. (xg_set_no_accept_focus): See appropriate widget. * src/gtkutil.h: New declaration. * src/pgtkfns.c (pgtk_set_name_internal): Do only when top-level frame. (Fx_create_frame): Reparent the frame. (frame_geometry): Call appropriate functions (syms_of_pgtkfns): Port from X code. * src/pgtkterm.c (x_free_frame_resources): Destroy appropriate widget. (x_calc_absolute_position): Port from X code. (x_set_offset): Re-port from X code. (pgtk_set_window_size): Use appropriate widget. (pgtk_make_frame_visible): Use appropriate widget. (pgtk_make_frame_invisible): Use appropriate widget. (x_set_parent_frame): Reparent the frame. (x_set_z_group): Process only when top-level frame. (pgtk_text_icon): Process only when top-level frame. (set_fullscreen_state): Process only when top-level frame. (frame_highlight): Hold ref. (frame_unhighlight): Hold ref. (pgtk_window_is_of_frame_recursive): Prune child frames. (pgtk_window_is_of_frame): Prune child frames. (print_widget_tree_recursive): Don't call this when not debugging. (pgtk_handle_draw): Don't call this when not debugging. (pgtk_set_event_handler): expect map-event for edit_widget not outer widget. * src/pgtkterm.h (FRAME_WIDGET): New macro.
* Add support for x-support-framesJeff Walsh2020-11-241-0/+11
| | | | | | | | | * src/pgtkfns.c (Fx_export_frames): (syms_of_pgtkfns): port from X11 version * src/pgtkterm.c (pgtk_cr_accumulate_data): (pgtk_cr_destroy): (pgtk_cr_export_frames): port from X11 * src/pgtkterm.h: add defs
* * src/pgtkterm.h: Change coding styleYuuki Harano2020-11-241-41/+57
|
* * src/pgtkterm.h: Remove unused codeYuuki Harano2020-11-241-8/+0
|
* * src/pgtkterm.c (pgtk_defined_color): support gtk special colorsYuuki Harano2020-11-241-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | Color functions take the frame * src/gtkutil.c (xg_check_special_colors): pass frame as argument. * src/pgtkfns.c (x_set_foreground_color, x_set_background_color, x_set_cursor_color, pgtk_set_scroll_bar_foreground, pgtk_set_scroll_bar_background, Fxw_color_defined_p, Fxw_color_values): pass frame as argument. * src/pgtkterm.c (pgtk_parse_color): take frame as argument. (pgtk_lisp_to_color): take frame as argument, and pass it. Remove pgtk_lisp_to_color * src/pgtkfns.c (x_set_foreground_color, x_set_background_color, x_set_cursor_color): use x_decode_color instead of pgtk_lisp_to_color. (Fxw_color_defined_p, Fxw_color_values): use pgtk_defined_color instead of pgtk_lisp_to_color. * src/pgtkterm.c (pgtk_lisp_to_color): remove. * src/gtkutil.c (xg_check_special_colors): change color format * src/pgtkterm.h: remove pgtk_lisp_to_color declaration
* Make icons and titles work like on XYuuki Harano2020-11-241-0/+5
| | | | | | | | | | | | | | | * pgtk-win.el (frame-title-format, icon-title-format): remove. * pgtkfns.c (pgtk_set_name_as_filename): remove. * pgtkfns.c (pgtk_set_name_internal): remove gtk_window_set_icon_name call. * pgtkfns.c (pgtk_set_name): change value of update_mode_lines. * pgtkfns.c (pgtk_explicitly_set_name): prefer the symbol to an immediate value. * pgtkfns.c (pgtk_implicitly_set_name): remove pgtk_set_name_as_filename call. * pgtkfns.c (x_set_icon_type, x_set_icon_name): re-port from X code. * pgtkfns.c (xg_set_icon, xg_set_icon_from_xpm_data): port from X code. * pgtkterm.c (pgtk_bitmap_icon, pgtk_text_icon, pgtk_create_terminal): port from X code. * pgtkterm.h: add function declarations.
* use pgtk_menu_set_in_use.Yuuki Harano2020-11-241-0/+3
| | | | | | | * ../src/pgtkfns.c: (Fx_file_dialog, clean_up_dialog): * src/pgtkmenu.c (pgtk_menu_wait_for_event):
* implement popup/context menuYuuki Harano2020-11-241-2/+3
| | | | | | | | | | | | | | | | | | | | | | | * ../src/pgtkterm.c (x_draw_glyph_string_background) (x_draw_glyph_string_foreground) (x_draw_composite_glyph_string_foreground) (x_draw_glyphless_glyph_string_foreground, x_draw_relief_rect) (x_draw_box_rect, x_draw_glyph_string_box, x_draw_image_relief) (x_draw_image_foreground, x_draw_image_glyph_string) (button_event): * src/pgtkterm.h (struct pgtk_display_info): * src/pgtkmenu.c (pgtk_menu_set_in_use) (pgtk_menu_wait_for_event, Fx_menu_bar_open_internal) (popup_widget_loop, pgtk_activate_menubar) (popup_deactivate_callback, show_help_event): new functions (menu_highlight_callback): remove (update_frame_menubar, popup_selection_callback, pop_down_menu) (create_and_show_popup_menu, cleanup_widget_value_tree) (pgtk_menu_show, dialog_selection_callback): new (create_and_show_dialog, pgtk_dialog_show, pgtk_popup_dialog) (popup_activated, Fmenu_or_popup_active_p, syms_of_pgtkmenu):
* minimize gtkutil.c differences.Yuuki Harano2020-11-241-7/+0
| | | | | | | | | | | | | | * src/pgtkterm.h: remove compiletime ifdefs * src/gtkutil.h: block out unused decl * src/gtkutil.c: (xg_get_pixbuf_from_pix_and_mask, xg_height_or_width_changed) (xg_create_frame_widgets, x_wm_set_size_hint) (xg_event_is_for_menubar, update_frame_tool_bar): resolve argument type mismatch. fix compatibility.
* End Resize flickering by copying surface rather than just clearingJeff Walsh2020-11-241-2/+2
| | | | | | | * src/pgtkterm.h (FRAME_NATIVE_WINDOW): * src/pgtkterm.c (pgtk_set_window_size): cleanup traces (x_draw_bar_cursor, pgtk_handle_draw, syms_of_pgtkterm):
* Bring pgtk more inline with X11-cairo buildsJeff Walsh2020-11-241-4/+3
| | | | | | | | | | | | | | | | | | * src/pgtkterm.h (struct pgtk_output): * src/pgtkterm.c (FRAME_CR_ACTIVE_CONTEXT, flip_cr_context) (x_draw_bar_cursor, pgtk_scroll_run, pgtk_update_end) (pgtk_cr_draw_image, pgtk_flash, pgtk_handle_draw) (pgtk_cr_update_surface_desired_size, pgtk_begin_cr_clip) (pgtk_cr_destroy_frame_context): * src/image.c (image_create_pattern_from_pixbuf): - Don't create a context each time, just hold a reference - Pull in a few cairo image changes from master - Remove redundant code in pgtk_update_begin()
* update redisplay_interface.Yuuki Harano2020-11-241-0/+2
| | | | | | | | * src/pgtkfns.c (Fx_create_frame, pgtk_default_font_parameter): * src/pgtkterm.c (pgtk_redisplay_interface): * src/pgtkterm.h:
* End Resize flickering by copying surface rather than just clearingJeff Walsh2020-11-221-0/+2
| | | | | | | | | | | | * src/pgtkterm.h (struct pgtk_output): store desired sizes * src/pgtkterm.c (FRAME_CR_SURFACE_DESIRED_HEIGHT) (FRAME_CR_SURFACE_DESIRED_WIDTH, size_allocate, configure_event) (pgtk_cr_update_surface_desired_size): add "desired" size for handling surface change * src/gtkutil.c (xg_frame_resized, xg_create_frame_widgets): remove surface destroy, turn off double buffer call
* implement pre-edit input methodYuuki Harano2020-11-221-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/termhooks.h (enum event_kind): new pgtk value * src/pgtkterm.h (struct pgtk_display_info): * src/pgtkterm.c (x_free_frame_resources, pgtk_delete_terminal) (pgtk_enqueue_string, pgtk_enqueue_preedit, key_press_event) (focus_in_event, focus_out_event, pgtk_term_init): call pgtkim * src/pgtkim.c: new file (im_context_commit_cb, im_context_retrieve_surrounding_cb) (make_color_string, im_context_preedit_changed_cb) (im_context_preedit_end_cb, im_context_preedit_start_cb) (pgtk_im_focus_in, pgtk_im_focus_out, pgtk_im_filter_keypress) (pgtk_im_finish, Fpgtk_use_im_context, syms_of_pgtkim): * src/pgtkfns.c (check_pgtk_display_info): * src/keyboard.c (kbd_buffer_get_event, make_lispy_event) (keys_of_keyboard): * src/emacs.c (main): add syms_of_pgtkim * lisp/term/pgtk-win.el (pgtk-preedit-text): new defun * configure.ac (XWIDGETS_OBJ): add pgtkim.o input method 対応 preedit を overlay で表示するようにした。 preedit 表示後すぐに反映されなかったのを修正 この機能を ON/OFF できるようにした。 default off. 確定と同時に次の preedit が始まった場合に表示位置がおかしかったのを修正。 sample. preedit をテキストで渡すようにした
* experimental support of tab-bar.Yuuki Harano2020-11-221-0/+2
| | | | | | | | | | | | | | * src/window.h: compile conditional * src/pgtkterm.h: function decls * src/pgtkterm.c (x_draw_image_relief, pgtk_create_terminal) (motion_notify_event, button_event): tabbar support * src/pgtkfns.c (x_set_tab_bar_lines, x_change_tab_bar_height) (pgtk_frame_parm_handlers, Fx_create_frame, frame_geometry): tabbar support 余計なイベントが生成されていたのを修正。
* improve some efficiency - simplify drawsYuuki Harano2020-11-221-0/+1
| | | | | | | | | | | * src/pgtkterm.h (struct pgtk_bitmap_record): * src/pgtkterm.c (create_background_surface_by_face): * src/image.c (image_create_pattern_from_pixbuf) (image_create_bitmap_from_data, image_create_bitmap_from_file): 少し効率化。
* Implement Scroll-bar-forground and scroll-bar-backgroundYuuki Harano2020-11-221-0/+4
| | | | | | | | | | | | | | | | * src/pgtkterm.h (struct pgtk_output): * src/pgtkterm.c (x_free_frame_resources): * src/pgtkfns.c (pgtk_set_scroll_bar_foreground) (pgtk_set_scroll_bar_background, pgtk_frame_parm_handlers) (Fx_create_frame): * src/gtkutil.c (xg_finish_scroll_bar_creation):handle scrollbar css values * etc/org.gnu.emacs.defaults.gschema.xml: add scroll bar fields scroll-bar-foreground, scroll-bar-background 実装。
* Implement Meta key detectionYuuki Harano2020-11-221-1/+4
| | | | | | | | | | | | | | * ../src/pgtkterm.c (x_find_modifier_meanings, ) (key_press_event, construct_mouse_click, scroll_event) (pgtk_term_init): * src/pgtkterm.h (struct pgtk_display_info): * ../src/gtkutil.c (xg_tool_bar_callback): meta キーの検出を実装。 X11 で alt キーを meta キーとして使えなくなっていたのを修正。
* Implement invisible-pointer to create blinking effectYuuki Harano2020-11-221-0/+7
| | | | | | | | | | | | * src/pgtkterm.h (struct pgtk_display_info): add cursor and callback * src/pgtkterm.c (x_setup_pointer_blanking) (XTtoggle_invisible_pointer, x_toggle_visible_pointer): new functions (pgtk_create_terminal, pgtk_term_init): use gdkcursor * src/pgtkgui.h: define Emacs_cursor as a GdkCursor invisible pointer 実装。
* border_color/pixel widthYuuki Harano2020-11-221-0/+4
| | | | | | | | | | | | | | * src/pgtkterm.h (struct pgtk_output): * src/pgtkterm.c (x_free_frame_resources, frame_highlight) (frame_unhighlight, pgtk_frame_rehighlight): use css information * src/pgtkfns.c (x_set_border_color, pgtk_frame_parm_handlers) (Fx_create_frame): new functions connected * src/frame.c (gui_set_border_width): ifdef for PGTK border_color/pixel 対応。
* Addframe highlighting supportYuuki Harano2020-11-221-0/+1
| | | | | | | | | | | * ../src/pgtkterm.c: (pgtk_focus_frame, set_opacity_recursively, x_set_frame_alpha) (frame_highlight, frame_unhighlight, pgtk_frame_rehighlight) (XTframe_rehighlight, x_new_focus_frame, pgtk_create_terminal): frame の highlight に対応。 とりあえず opacity のみ対応。
* Early toolbar improvementsJeff Walsh2020-11-221-1/+1
| | | | | | | | | | | | | | | | | * src/xdisp.c (redisplay_tool_bar): * src/pgtkterm.h: * src/pgtkterm.c: (pgtk_make_frame_visible, pgtk_make_frame_invisible) (pgtk_update_begin, pgtk_parse_color, pgtk_query_colors) (syms_of_pgtkterm): * src/pgtkfns.c: cleanup function * src/image.c (image_create_bitmap_from_file): * src/gtkutil.c (xg_get_pixbuf_from_pix_and_mask):
* Add Preferred geometry settingsYuuki Harano2020-11-221-0/+1
| | | | | | | | | | | | | | | * ../src/pgtkterm.h (struct pgtk_output): * ../src/pgtkterm.c (pgtk_set_window_size): * ../src/gtkutil.c (x_wm_set_size_hint): * ../src/emacsgtkfixed.c (emacs_fixed_get_preferred_width) (emacs_fixed_get_preferred_height): Fixup toolbar handling toolbar, menubar の ON/OFF でサイズが変化していっていたのを修正。
* Migrate to Emacs_GCYuuki Harano2020-11-221-4/+4
| | | | | | | | | | | | | | | | | | | | | * ../src/xfaces.c (x_create_gc, x_free_gc): * ../src/pgtkterm.h (struct pgtk_output, struct pgtk_output): * ../src/pgtkterm.c (x_set_cursor_gc, x_set_mouse_face_gc) (x_setup_relief_color, x_draw_image_foreground_1) (x_draw_image_foreground) (pgtk_cr_draw_image, pgtk_draw_fringe_bitmap) (pgtk_begin_cr_clip, pgtk_set_cr_source_with_gc_foreground) (pgtk_set_cr_source_with_gc_background): * ../src/pgtkgui.h: * ../src/dispextern.h (struct glyph_string): clean up XGCValues emulation XGCValues, GC 廃止。 Emacs_GC に統一。
* Implement menubar for pgtk emacsJeff Walsh2020-11-221-0/+6
| | | | | | | | | | | | | | | * src/xdisp.c (display_menu_bar): add pgtk case * ../src/pgtkterm.c (pgtk_create_terminal): update hooks (pgtk_menu_show): delete * src/pgtkterm.h: add decls * src/pgtkmenu.c: new file * ../src/pgtkfns.c (x_set_menu_bar_lines) (x_change_tool_bar_height, x_set_tool_bar_lines) (Fx_create_frame):
* Cleanup x_* to gui_ to match upstream workYuuki Harano2020-11-221-2/+6
| | | | | | | | | | | | | | | | | | | * ../src/pgtkterm.h (struct pgtk_display_info): * ../src/pgtkterm.c (mark_pgtkterm, x_free_frame_resources) (pgtk_update_window_end, pgtk_mouse_position) (pgtk_redisplay_interface, pgtk_query_frame_background_color) (pgtk_delete_terminal, pgtk_create_terminal) (pgtk_query_frame_background_color, frame_highlight) (motion_notify_event, button_event, scroll_event): * ../src/pgtkfns.c (x_set_cursor_color, x_icon) (pgtk_frame_parm_handlers, x_default_font_parameter) (Fx_create_frame): "for the time being, commit" -- rename x->gui, frame_X_X(f) macros ひとまず commit。
* Add support for cursor_foreground_colorsYuuki Harano2020-11-221-1/+4
| | | | | | | | | | | | | * ../src/pgtkterm.c (x_set_cursor_gc): * ../src/pgtkfns.c (x_set_cursor_color, Fx_create_frame) (syms_of_pgtkfns): * src/pgtkterm.h (struct pgtk_output): cursor_foreground_color 対応。 あんまり意味なかった感じ。
* Introduce Pure GTK3 portYuuki Harano2020-11-221-0/+569
* src/xsettings.h: * src/xsettings.c: (dpyinfo_valid, store_tool_bar_style_changed) (XSETTINGS_FONT_NAME, get_prop_window, read_settings) (apply_xft_settings, read_and_apply_settings) (xft_settings_event, init_xsettings, xsettings_initialize): * src/xfaces.c: (x_create_gc, x_free_gc): * src/xdisp.c (redisplay_tool_bar, redisplay_internal) (draw_glyphs_debug, draw_glyphs, mouse_face_from_buffer_pos) (note_mouse_highlight): * src/terminal.c (Fterminal_live_p): * src/termhooks.h (enum output_method, GCALIGNED_STRUCT) (TERMINAL_FONT_CACHE): * src/process.c (wait_reading_process_output): * src/pgtkterm.h: * src/pgtkterm.c: * src/pgtkselect.h: * src/pgtkselect.c: * src/pgtkgui.h: * src/pgtkfns.c: * src/image.c: (XGetPixel, XPutPixel, image_create_bitmap_from_data) (image_create_bitmap_from_file, free_bitmap_record) (image_destroy_x_image, gui_put_x_image, image_get_x_image) (Create_Pixmap_From_Bitmap_Data, xbm_load_image, ) (xpm_load_image, lookup_rgb_color, image_disable_image) (image_build_heuristic_mask, imagemagick_load_image): * src/gtkutil.h: * src/gtkutil.c (PGTK_TRACE, xg_set_screen, xg_display_open) (xg_display_close, xg_create_default_cursor) (xg_get_pixbuf_from_pix_and_mask, xg_check_special_colors) (qttip_cb, hierarchy_ch_cb, xg_prepare_tooltip, ) (xg_show_tooltip, xg_hide_tooltip, xg_frame_resized) (xg_frame_set_char_size, xg_height_or_width_changed) (xg_set_widget_bg, style_changed_cb, xg_create_frame_widgets) (xg_free_frame_widgets, x_wm_set_size_hint, xg_frame_restack) (xg_mark_data, xg_update_frame_menubar, free_frame_menubar) (xg_update_submenu, xg_finish_scroll_bar_creation) (xg_update_scrollbar_pos, xg_update_horizontal_scrollbar_pos) (xg_set_toolkit_scroll_bar_thumb, xg_event_is_for_scrollbar) (draw_page, xg_pack_tool_bar, xg_create_tool_bar) (xg_update_tool_bar_sizes, update_frame_tool_bar) (free_frame_tool_bar, xg_change_toolbar_position): * src/ftcrfont.c: (ftcrfont_draw): * src/fringe.c: (init_fringe_bitmap): * src/frame.h (GCALIGNED_STRUCT, FRAME_WINDOW_P): * src/frame.c (Fframep): * src/font.h: * src/font.c (syms_of_font): * src/emacsgtkfixed.c: (emacs_fixed_get_preferred_width) (emacs_fixed_get_preferred_height, XSetWMSizeHints): * src/emacs.c (main): * src/dispnew.c (init_display_interactive): * src/dispextern.h: * src/alloc.c: (garbage_collect): * src/Makefile.in (PGTK_OBJ, PGTK_LIBS, base_obj, LIBES): * src/.gdbinit: * lisp/url/url-privacy.el (url-setup-privacy-info): * lisp/term/pgtk-win.el (featurep): * lisp/startup.el (command-line, fancy-splash-frame): * lisp/net/eww.el (eww-form-submit, eww-form-file) (eww-form-checkbox, eww-form-select): * lisp/mwheel.el (mouse-wheel-down-event, mouse-wheel-up-event): * lisp/loadup.el (featurep): * lisp/international/mule-cmds.el (set-coding-system-map): * lisp/frame.el (pgtk-frame-geometry, frame-geometry) (w32-frame-edges, frame-edges) (pgtk-mouse-absolute-pixel-position) (mouse-absolute-pixel-position) (pgtk-set-mouse-absolute-pixel-position) (pgtk-frame-list-z-order, frame-list-z-order) (pgtk-frame-restack, frame-restack, display-mouse-p) (display-graphic-p, display-symbol-keys-p, ) (display-pixel-height, display-mm-height, display-mm-width) (display-backing-store, display-save-under, display-color-cells) (display-planes, display-visual-class) (pgtk-display-monitor-attributes-list) (display-monitor-attributes-list): * lisp/faces.el (face-spec-set-match-display, tool-bar): * lisp/cus-edit.el (custom-button, custom-button-mouse) (custom-button-pressed, custom-display): * configure.ac (AUTO_DEPEND, XARGS_LIMIT, XWIDGETS_OBJ):