diff options
author | Eli Zaretskii <eliz@gnu.org> | 2022-05-27 09:42:39 +0300 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2022-05-27 09:42:39 +0300 |
commit | a2f7b7c803494deb112acc0222e9454c5268de1f (patch) | |
tree | f190ba0923eb73dc713ab15c480d26e2ed34eb9f | |
parent | 77bfc5ed7af2ba0f05c53415f7d63107c372a29f (diff) | |
parent | 34e4eba07ed491d3c01902023df6f15c968117cf (diff) | |
download | emacs-a2f7b7c803494deb112acc0222e9454c5268de1f.tar.gz emacs-a2f7b7c803494deb112acc0222e9454c5268de1f.tar.bz2 emacs-a2f7b7c803494deb112acc0222e9454c5268de1f.zip |
Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
-rw-r--r-- | etc/PROBLEMS | 17 | ||||
-rw-r--r-- | src/xterm.c | 17 |
2 files changed, 28 insertions, 6 deletions
diff --git a/etc/PROBLEMS b/etc/PROBLEMS index 4224171298e..018efcf3024 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS @@ -3025,6 +3025,23 @@ GTK_IM_MODULE. GTK does not allow programs to warp the pointer anymore. There is nothing that can be done about this problem. +** Certain keys such as 'C-S-u' are not reported correctly. + +Some keys with modifiers such as Shift and Control might not be +reported correctly due to incorrectly written GTK input method +modules. This is known to happen to 'C-S-u' and 'C->', which are +misreported as 'C-u' and '>'. + +To disable the use of GTK input methods, evaluate: + + (pgtk-use-im-context nil) + +This will also cause system input methods and features such as the +Compose key to stop working. + +On X Windows, users should not use Emacs configured with PGTK, since +this and many other problems do not exist on the regular X builds. + * Build-time problems ** Configuration diff --git a/src/xterm.c b/src/xterm.c index 4f264ab2a86..00df7dce343 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -7264,10 +7264,8 @@ x_hash_string_ignore_case (const char *string) /* On frame F, translate the color name to RGB values. Use cached information, if possible. - Note that there is currently no way to clean old entries out of the - cache. However, it is limited to names in the server's database, - and names we've actually looked up; list-colors-display is probably - the most color-intensive case we're likely to hit. */ + If too many entries are placed in the cache, the least recently + used entries are removed. */ Status x_parse_color (struct frame *f, const char *color_name, @@ -7351,13 +7349,15 @@ x_parse_color (struct frame *f, const char *color_name, dpyinfo->color_names[idx] = cache_entry; /* Don't let the color cache become too big. */ - if (dpyinfo->color_names_length[idx] > 128) + if (dpyinfo->color_names_length[idx] > (x_color_cache_bucket_size > 0 + ? x_color_cache_bucket_size : 128)) { i = 0; for (last = dpyinfo->color_names[idx]; last; last = last->next) { - if (++i == 128) + if (++i == (x_color_cache_bucket_size > 0 + ? x_color_cache_bucket_size : 128)) { next = last->next; last->next = NULL; @@ -25941,4 +25941,9 @@ where the drop happened, ACTION is the action that was passed to `x-begin-drag', FRAME is the frame which initiated the drag-and-drop operation, and TIME is the X server time when the drop happened. */); Vx_dnd_unsupported_drop_function = Qnil; + + DEFVAR_INT ("x-color-cache-bucket-size", x_color_cache_bucket_size, + doc: /* Most buckets allowed per display in the internal color cache. +Values less than 1 mean 128. This option is for debugging only. */); + x_color_cache_bucket_size = 128; } |