[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
feature/pgtk a9c8a56 006/100: Fix xdg-open handling
From: |
Yuuki Harano |
Subject: |
feature/pgtk a9c8a56 006/100: Fix xdg-open handling |
Date: |
Tue, 24 Nov 2020 08:02:25 -0500 (EST) |
branch: feature/pgtk
commit a9c8a56ba1fdbb6645ddebdabbb826993b6dca23
Author: Yuuki Harano <masm+github@masm11.me>
Commit: Jeff Walsh <fejfighter@gmail.com>
Fix xdg-open handling
* ../src/pgtkterm.c (pgtk_term_init, NUM_ARGV, pgtk_term_init):
* ../lisp/net/browse-url.el (browse-url):
xdg-open できなかったのを修正。
---
lisp/net/browse-url.el | 13 +++++++++++--
src/pgtkterm.c | 25 ++++++++++++++++++-------
2 files changed, 29 insertions(+), 9 deletions(-)
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
index 8b245b0..27a4f1b 100644
--- a/lisp/net/browse-url.el
+++ b/lisp/net/browse-url.el
@@ -888,8 +888,17 @@ If ARGS are omitted, the default is to pass
;; When connected to various displays, be careful to use the display of
;; the currently selected frame, rather than the original start display,
;; which may not even exist any more.
- (if (stringp (frame-parameter nil 'display))
- (setenv "DISPLAY" (frame-parameter nil 'display)))
+ (let ((dpy (frame-parameter nil 'display))
+ classname)
+ (if (stringp dpy)
+ (cond
+ ((featurep 'pgtk)
+ (setq classname (pgtk-backend-display-class))
+ (if (equal classname "GdkWaylandDisplay")
+ (setenv "WAYLAND_DISPLAY" dpy)
+ (setenv "DISPLAY" dpy)))
+ (t
+ (setenv "DISPLAY" dpy)))))
(if (functionp function)
(apply function url args)
(error "No suitable browser for URL %s" url))))
diff --git a/src/pgtkterm.c b/src/pgtkterm.c
index 4f2c454..d84e3b1 100644
--- a/src/pgtkterm.c
+++ b/src/pgtkterm.c
@@ -5846,6 +5846,9 @@ pgtk_term_init (Lisp_Object display_name, char
*resource_name)
struct pgtk_display_info *dpyinfo;
static int x_initialized = 0;
static unsigned x_display_id = 0;
+ static char *initial_display = NULL;
+ char *dpy_name;
+ Lisp_Object lisp_dpy_name = Qnil;
block_input ();
@@ -5861,6 +5864,11 @@ pgtk_term_init (Lisp_Object display_name, char
*resource_name)
++x_initialized;
}
+ dpy_name = SSDATA (display_name);
+ if (strlen(dpy_name) == 0 && initial_display != NULL)
+ dpy_name = initial_display;
+ lisp_dpy_name = build_string (dpy_name);
+
{
#define NUM_ARGV 10
int argc;
@@ -5870,7 +5878,7 @@ pgtk_term_init (Lisp_Object display_name, char
*resource_name)
if (x_initialized++ > 1)
{
- xg_display_open (SSDATA (display_name), &dpy);
+ xg_display_open (dpy_name, &dpy);
}
else
{
@@ -5883,10 +5891,10 @@ pgtk_term_init (Lisp_Object display_name, char
*resource_name)
argc = 0;
argv[argc++] = initial_argv[0];
- if (strlen(SSDATA(display_name)) != 0)
+ if (strlen(dpy_name) != 0)
{
argv[argc++] = display_opt;
- argv[argc++] = SSDATA (display_name);
+ argv[argc++] = dpy_name;
}
argv[argc++] = name_opt;
@@ -5910,6 +5918,10 @@ pgtk_term_init (Lisp_Object display_name, char
*resource_name)
xg_initialize ();
dpy = DEFAULT_GDK_DISPLAY ();
+
+ initial_display = g_strdup (gdk_display_get_name(dpy));
+ dpy_name = initial_display;
+ lisp_dpy_name = build_string(dpy_name);
}
}
@@ -5929,8 +5941,7 @@ pgtk_term_init (Lisp_Object display_name, char
*resource_name)
struct pgtk_display_info *share;
for (share = x_display_list; share; share = share->next)
- if (same_x_server (SSDATA (XCAR (share->name_list_element)),
- SSDATA (display_name)))
+ if (same_x_server (SSDATA (XCAR (share->name_list_element)), dpy_name))
break;
if (share)
terminal->kboard = share->terminal->kboard;
@@ -5951,7 +5962,7 @@ pgtk_term_init (Lisp_Object display_name, char
*resource_name)
dpyinfo->next = x_display_list;
x_display_list = dpyinfo;
- dpyinfo->name_list_element = Fcons (display_name, Qnil);
+ dpyinfo->name_list_element = Fcons (lisp_dpy_name, Qnil);
dpyinfo->gdpy = dpy;
/* https://lists.gnu.org/r/emacs-devel/2015-11/msg00194.html */
@@ -5959,7 +5970,7 @@ pgtk_term_init (Lisp_Object display_name, char
*resource_name)
dpyinfo->smallest_char_width = 1;
/* Set the name of the terminal. */
- terminal->name = xlispstrdup (display_name);
+ terminal->name = xlispstrdup (lisp_dpy_name);
Lisp_Object system_name = Fsystem_name ();
ptrdiff_t nbytes;
- feature/pgtk fbba846 017/100: Addframe highlighting support, (continued)
- feature/pgtk fbba846 017/100: Addframe highlighting support, Yuuki Harano, 2020/11/24
- feature/pgtk 0056ca2 064/100: * src/pgtkterm.h: Change coding style, Yuuki Harano, 2020/11/24
- feature/pgtk f761a09 065/100: * src/pgtkim.c: Change coding style, Yuuki Harano, 2020/11/24
- feature/pgtk 27a92f7 072/100: Add font chooser functionality, Yuuki Harano, 2020/11/24
- feature/pgtk 9752896 042/100: Bring pgtk more inline with X11-cairo builds, Yuuki Harano, 2020/11/24
- feature/pgtk 164800d 013/100: Add Preferred geometry settings, Yuuki Harano, 2020/11/24
- feature/pgtk 383ced7 071/100: Fix migrating Child frames, Yuuki Harano, 2020/11/24
- feature/pgtk 3b161dd 066/100: * src/pgtkselect.h: Change coding style, Yuuki Harano, 2020/11/24
- feature/pgtk 89cbe37 070/100: * src/keyboard.c (make_lispy_event): Fix coding style, Yuuki Harano, 2020/11/24
- feature/pgtk f6d8c59 001/100: Introduce Pure GTK3 port, Yuuki Harano, 2020/11/24
- feature/pgtk a9c8a56 006/100: Fix xdg-open handling,
Yuuki Harano <=
- feature/pgtk ed1f7d1 008/100: Simplify compilaiton condtion, Yuuki Harano, 2020/11/24
- feature/pgtk cdc04b4 010/100: Implement menubar for pgtk emacs, Yuuki Harano, 2020/11/24
- feature/pgtk 85441c9 016/100: Add Stipple support for PGTK, Yuuki Harano, 2020/11/24
- feature/pgtk bfbcb11 026/100: implement set-tool-bar-position and set-sticky, Yuuki Harano, 2020/11/24
- feature/pgtk af5b725 061/100: * src/pgtkmenu.c: change coding style, Yuuki Harano, 2020/11/24
- feature/pgtk e649275 058/100: * src/pgtkterm.c: change coding style, Yuuki Harano, 2020/11/24
- feature/pgtk de7b0da 049/100: use pgtk_menu_set_in_use., Yuuki Harano, 2020/11/24
- feature/pgtk af1e279 073/100: Restore support for terminal only emacs in PGTK (add --with-pgtk), Yuuki Harano, 2020/11/24
- feature/pgtk 8669feb 054/100: Make icons and titles work like on X, Yuuki Harano, 2020/11/24
- feature/pgtk 20dbd4e 069/100: Change coding style, Yuuki Harano, 2020/11/24