1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-15 03:11:54 -07:00
Commit graph

143974 commits

Author SHA1 Message Date
Yuuki Harano
c1fbfb3fe0 Don't use gtk_window_resize to resize offscreen window
* src/xwidget.c (Fmake_xwidget): Use gtk_container_check_resize instead.
(Fxwidget_resize): Use gtk_container_check_resize instead.

; Gtk+3 document says:
; > Applications should not use any API specific to GtkWindow
; > to operate on this object. It should be treated as a GtkBin
; > that has no parent widget.
2020-11-24 12:24:40 +11:00
Yuuki Harano
d437aabe4d Avoid gtk warnings on X
* src/xwidget.c (xwidget_osr_draw_cb): Call it to avoid alloc_needes.
2020-11-24 12:24:40 +11:00
Kira Bruneau
7b6fea821a Avoid mutating invocation-name (tiny change)
* lisp/term/pgtk-win.el (window-system-initialization): copy invocation-name.
2020-11-24 12:24:40 +11:00
Yuuki Harano
4dbea5be17 Fix Gtk warnings
* src/gtkutil.c (xg_frame_set_char_size): Call appropriate function
(xg_set_undecorated): Do nothing if child frame.
(xg_set_no_focus_on_map): Do nothing if child frame.
(xg_set_no_accept_focus): Do nothing if child frame.
(xg_set_frame_icon): Do nothing if child frame.
(xg_get_file_name): Do nothing if child frame.
(xg_get_font):
* src/pgtkterm.c (pgtk_focus_frame): Do nothing if child frames.
(x_set_frame_alpha): Select correct widget.
(x_new_focus_frame): Focus only when non-child frames.
(pgtk_set_event_handler): Don't set for child frames.
* src/pgtkfns.c (xg_set_icon): Do nothing if child frames.
(xg_set_icon_from_xpm_data): Do nothing if child frames.
(pgtk_set_sticky): Do nothing if child frames.
(Fx_show_tip): Do nothing if child frames.
(Fpgtk_set_mouse_absolute_pixel_position): Select correct widget.
(Fpgtk_mouse_absolute_pixel_position): Select correct widget.
* src/pgtkmenu.c (pgtk_menu_show):
(pgtk_dialog_show):
2020-11-24 12:24:40 +11:00
Yuuki Harano
bb6862df1b Fix crash on drag and drop
* src/pgtkterm.c (pgtk_select): Move dispatch before
g_main_context_query.
(drag_drop): Remove drag_drop.
(drag_data_received): Rename arg.
(pgtk_set_event_handler): Remove drag-drop callback.
2020-11-24 12:24:40 +11:00
Yuuki Harano
640f770b79 Fix mouse cursor doesn't appear on motion events on xwidgets
* src/xwidget.c (xwidget_osr_event_forward): Propagate motion notify.
2020-11-24 12:24:40 +11:00
Yuuki Harano
d899fc11f6 Fix tooltips don't hide on events
* src/pgtkterm.c: New variable to indicate whether any event occurs.
(configure_event): Clear help string on a event.
(leave_notify_event): Clear help string on a event.
(motion_notify_event): Use gen_help_event.
(pgtk_set_event_handler): Hook configure-event for outer widgets.
(pgtk_term_init): Clear the flag.
2020-11-24 12:24:40 +11:00
Yuuki Harano
b60d4c9db0 Fix crash on creating child frames.
* src/pgtkfns.c (frame_geometry): Returns nil when no widget.
2020-11-24 12:24:40 +11:00
Yuuki Harano
0b69b73baa Fix crash when child frame updates toolbar
* src/gtkutil.c (update_frame_tool_bar): Do nothing when child frame.
2020-11-24 12:24:40 +11:00
Yuuki Harano
7c8da33613 Exclude Xlib's modifier keys
* src/pgtkterm.c (IsModifierKey): New macro.
(key_press_event): Exclude Xlib's modifier keys.
2020-11-24 12:24:40 +11:00
Yuuki Harano
28073ba59b Re-implement childframe with emacsgtkfixed
* 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.
2020-11-24 12:24:40 +11:00
Jeff Walsh
e75ce0302d Add support for x-support-frames
* 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
2020-11-24 12:24:40 +11:00
Yuuki Harano
9704e23f4c Enable GtkIMContext by default
* lisp/term/pgtk-win.el: Call pgtk-use-im-context after init.

* src/pgtkim.c (pgtk_im_use_context): New function.
(pgtk_im_init): Call pgtk_im_use_context.
(Fpgtk_use_im_context): Call pgtk_im_use_context.
(syms_of_pgtkim): New variable Vpgtk_use_im_context_on_new_connection.
2020-11-24 12:24:40 +11:00
Yuuki Harano
6df8556ab7 Remove duplicated syms_of_xwidget call
* src/emacs.c (main): Remove duplicated syms_of_xwidget() call.
2020-11-24 12:24:40 +11:00
Yuuki Harano
2dd20b2d75 Self-implement tooltip
* src/gtkutil.c (xg_create_frame_widgets): Use popup for tooltip.
* src/pgtkfns.c (unwind_create_tip_frame): Port X code.
(x_create_tip_frame): Re-port X code.
(x_hide_tip): Re-port X code.
(Fx_show_tip): Re-port X code.
(frame_geometry): Get left_pos and top_pos here.
(syms_of_pgtkfns): Add variables for tooltip.
* src/pgtkterm.c (pgtk_set_event_handler): Set event handler for tooltip.
2020-11-24 12:24:40 +11:00
Yuuki Harano
51462ce2cc Add PGTK to system-configuration-features
* configure.ac: Set HAVE_PGTK when configuring for PGTK, and
add PGTK for iteration.
2020-11-24 12:24:40 +11:00
Yuuki Harano
be47e34e40 Re-port image drawing code from X
* src/pgtkterm.c (x_cr_draw_image): Re-port X code.
(x_draw_image_foreground): Re-port X code.
(x_draw_image_glyph_string): Re-port X code.
2020-11-24 12:24:40 +11:00
Yuuki Harano
2d5ffa5595 Make pointer visible when motion notify event
* src/pgtkterm.c (motion_notify_event): set pending_signals to true.
2020-11-24 12:24:40 +11:00
Yuuki Harano
e7190d8bb2 Fix non-English layout does not work
* src/pgtkterm.c (key_press_event): Use Vlocale_coding_system.
2020-11-24 12:24:40 +11:00
Yuuki Harano
6c4349601c Fix font lock is not applied on continued lines
* src/pgtkterm.c (pgtk_parse_color): Remove alpha bits.
2020-11-24 12:24:40 +11:00
Jeff Walsh
af1e279c15 Restore support for terminal only emacs in PGTK (add --with-pgtk)
* configure.ac: add "--with-pgtk" switch for building pgtk terminal
support.
Adjust X11 window system tests to no clobber pgtk preferences
2020-11-24 12:24:40 +11:00
Jeff Walsh
27a92f7b15 Add font chooser functionality
* src/pgtkfns.c (Fpgtk_popup_font_panel): repurpose X/gtk font chooser code
(syms_of_pgtkfns): add new symbol
2020-11-24 12:24:40 +11:00
Jeff Walsh
383ced7aee Fix migrating Child frames
* src/pgtkterm.c:
(x_calc_absolute_position): Remove Function that has no effect
(x_set_offset): titlebar off should not be stored as an offset, only
used to calculate final move locations
2020-11-24 12:24:40 +11:00
Yuuki Harano
89cbe3756c * src/keyboard.c (make_lispy_event): Fix coding style 2020-11-24 12:24:40 +11:00
Yuuki Harano
20dbd4e283 Change coding style
* src/gtkutil.c (xg_display_open):
(xg_get_image_for_pixmap):
(xg_frame_resized):
(xg_create_frame_widgets):
(x_wm_set_size_hint):
(xg_frame_restack):
(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):
2020-11-24 12:24:40 +11:00
Yuuki Harano
1fe7caf3a6 Fix coding style
* src/emacs.c (main): Fix coding style
2020-11-24 12:24:40 +11:00
Yuuki Harano
25cf59203e Change coding style
* src/image.c (image_create_pattern_from_pixbuf): Change coding style
(image_create_bitmap_from_data): Change coding style
(image_create_bitmap_from_file): Change coding style
2020-11-24 12:24:40 +11:00
Yuuki Harano
3b161dd3c8 * src/pgtkselect.h: Change coding style 2020-11-24 12:24:40 +11:00
Yuuki Harano
f761a09c98 * src/pgtkim.c: Change coding style 2020-11-24 12:24:40 +11:00
Yuuki Harano
0056ca2d06 * src/pgtkterm.h: Change coding style 2020-11-24 12:24:40 +11:00
Yuuki Harano
209c611ae9 * src/pgtkterm.h: Remove unused code 2020-11-24 12:24:40 +11:00
Yuuki Harano
964dfcf462 * src/pgtkgui.h: change coding style 2020-11-24 12:24:40 +11:00
Yuuki Harano
af5b72575c * src/pgtkmenu.c: change coding style 2020-11-24 12:24:40 +11:00
Yuuki Harano
72f79d820d * src/pgtkselect.c: change coding style 2020-11-24 12:24:40 +11:00
Yuuki Harano
d109dabbc5 * src/pgtkfns.c: change coding style 2020-11-24 12:24:40 +11:00
Yuuki Harano
e649275a0c * src/pgtkterm.c: change coding style 2020-11-24 12:24:40 +11:00
Yuuki Harano
a167e23560 * src/pgtkmenu.c (set_frame_menubar): Suppress gcc warning 2020-11-24 12:24:40 +11:00
Yuuki Harano
d68633bfa1 * src/pgtkterm.c (pgtk_defined_color): support gtk special colors
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
2020-11-24 12:24:40 +11:00
Yuuki Harano
fe2297ce7a * pgtkmenu.c (set_frame_menubar): fix empty menu. 2020-11-24 12:24:39 +11:00
Yuuki Harano
8669feb0c5 Make icons and titles work like on X
* 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.
2020-11-24 12:24:39 +11:00
Yuuki Harano
5a72a07fa5 * pgtk-win.el: fix compile-time warnings. 2020-11-24 12:24:39 +11:00
Yuuki Harano
014d56fa13 * src/pgtkterm.c: Remove incorrect mark_object call. 2020-11-24 12:24:39 +11:00
Yuuki Harano
4de4d9ee7e follow x_set_internal_border_width change.
* ../src/pgtkfns.c (x_set_internal_border_width):
2020-11-24 12:24:39 +11:00
Yuuki Harano
984f9cc7e5 restore frame_rehighlight_hook.
* src/frame.c (gui_set_border_width):
2020-11-24 12:24:39 +11:00
Yuuki Harano
de7b0daf2b use pgtk_menu_set_in_use.
* ../src/pgtkfns.c:
	(Fx_file_dialog, clean_up_dialog):

	* src/pgtkmenu.c (pgtk_menu_wait_for_event):
2020-11-24 12:24:39 +11:00
Yuuki Harano
04bfe70138 implement popup/context menu
* ../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):
2020-11-24 12:24:39 +11:00
Yuuki Harano
49645df52e minimize gtkutil.c differences.
* 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.
2020-11-24 12:24:39 +11:00
Yuuki Harano
cbd28cddea improve code readability.
* src/gtkutil.c (xg_create_frame_widgets):
2020-11-24 12:24:39 +11:00
Jeff Walsh
ef67659e98 Set screen/display dpi res to make broadway work as expected
* src/pgtkterm.c (pgtk_initialize_display_info)
(window_state_event, pgtk_term_init):

* src/gtkutil.c (xg_create_frame_widgets):

* src/pgtkterm.c (pgtk_initialize_display_info)
(window_state_event, pgtk_term_init):

* src/ftcrfont.c (ftcrfont_open):
2020-11-24 12:24:39 +11:00
Jeff Walsh
c9e6b4486b Some work toward posframe on wayland
* src/pgtkterm.c (flip_cr_context, x_set_offset): update for new functionality
(pgtk_set_window_size): remove dead code
(x_set_parent_frame): cleanup trace code
(pgtk_cr_update_surface_desired_size): add comment

* src/pgtkmenu.c (Fmenu_or_popup_active_p):

* src/pgtkfns.c (pgtk_frame_parm_handlers, Fx_create_frame):

* src/gtkutil.c (xg_create_frame_widgets, x_wm_set_size_hint):

* src/gtkutil.c (xg_create_frame_widgets):

hacky GTK offsets taht will need better calculations

Get parent frame's editor widget allocation for the offset

Fix child-frame offsets for negative values

Add some function comments around the new double context handling
2020-11-24 12:24:39 +11:00