unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#64969: 30.0.50: Stipple broken with PGTK
@ 2023-07-31  8:05 magnus
  2023-07-31 13:47 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 5+ messages in thread
From: magnus @ 2023-07-31  8:05 UTC (permalink / raw)
  To: 64969

The code

(let* ((w (window-font-width))
       (stipple `(,w 1 ,(apply #'unibyte-string
			       (append (make-list (1- (/ (+ w 7) 
			       8)) ?\0)
				       '(1))))))
  (insert "\n" (propertize (concat  (make-string 15 ?\s)
				    "THIS IS A TEST"
				    (make-string 15 ?\s))
                           'face `(:background "red" :foreground 
                           "blue" :stipple ,stipple))))

doesn't have the expected result, i.e. the text is not blue on red 
background.

More information leading to this report can be found at 
https://github.com/jdtsmith/indent-bars/issues/3


In GNU Emacs 30.0.50 (build 3, x86_64-pc-linux-gnu, GTK+ Version
 3.24.38, cairo version 1.17.8) of 2023-07-26 built on elostirion
Repository revision: 04a930a08ce80d8dcc123f86a3f153f23ec31a29
Repository branch: makepkg
System Description: Arch Linux

Configured using:
 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --mandir=/usr/share/man 
 --with-gameuser=:games
 --with-modules --without-libotf --without-m17n-flt 
 --without-gconf
 --with-native-compilation=yes --with-native-compilation=aot
 --with-xinput2 --with-pgtk --without-xaw3d --with-sound=no
 --with-xwidgets --with-tree-sitter --without-compress-install
 '--program-transform-name=s/\([ec]tags\)/\1.emacs/'
 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt 
 -fexceptions
 -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
 -fstack-clash-protection -fcf-protection'
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now
 'CXXFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt 
 -fexceptions
 -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
 -fstack-clash-protection -fcf-protection 
 -Wp,-D_GLIBCXX_ASSERTIONS''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ 
JPEG
JSON LCMS2 LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY 
PDUMPER
PGTK PNG RSVG SECCOMP SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP XIM XWIDGETS GTK3 ZLIB

Important settings:
  value of $LANG: en_GB.UTF-8
  locale-coding-system: utf-8-unix

Major mode: ELisp/d

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr comp comp-cstr warnings icons rx cl-seq 
cl-macs
gv cl-extra help-mode bytecomp byte-compile emacsbug message 
mailcap
yank-media puny dired dired-loaddefs rfc822 mml mml-sec 
password-cache
epa derived epg rfc6068 epg-config gnus-util text-property-search
time-date subr-x mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader cl-loaddefs cl-lib sendmail 
rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils rmc iso-transl 
tooltip
cconv eldoc paren electric uniquify ediff-hook vc-hooks 
lisp-float-type
elisp-mode mwheel term/pgtk-win pgtk-win term/common-win pgtk-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list 
replace
newcomment text-mode lisp-mode prog-mode register page tab-bar 
menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse 
jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer 
nadvice seq
simple cl-generic indonesian philippine cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese 
eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic 
indian
cyrillic chinese composite emoji-zwj charscript charprop 
case-table
epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded 
button
loaddefs theme-loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads
xwidget-internal dbusbind inotify dynamic-setting 
system-font-setting
font-render-setting cairo gtk pgtk lcms2 multi-tty move-toolbar
make-network-process native-compile emacs)

Memory information:
((conses 16 80510 12708) (symbols 48 7353 0) (strings 32 19778 
2015)
 (string-bytes 1 592396) (vectors 16 15046)
 (vector-slots 8 285882 20727) (floats 8 27 63) (intervals 56 451 
 8)
 (buffers 984 12))





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#64969: 30.0.50: Stipple broken with PGTK
  2023-07-31  8:05 bug#64969: 30.0.50: Stipple broken with PGTK magnus
@ 2023-07-31 13:47 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-08-01  2:35   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 5+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-07-31 13:47 UTC (permalink / raw)
  To: magnus; +Cc: 64969

magnus@therning.org writes:

> The code
>
> (let* ((w (window-font-width))
>       (stipple `(,w 1 ,(apply #'unibyte-string
> 			       (append (make-list (1- (/ (+ w 7)
> 			       8)) ?\0)
> 				       '(1))))))
>  (insert "\n" (propertize (concat  (make-string 15 ?\s)
> 				    "THIS IS A TEST"
> 				    (make-string 15 ?\s))
>                           'face `(:background "red" :foreground
>                           "blue" :stipple ,stipple))))
>
> doesn't have the expected result, i.e. the text is not blue on red
> background.
>
> More information leading to this report can be found at
> https://github.com/jdtsmith/indent-bars/issues/3

I think this owes to an inconsistency between the PGTK and X bitmap
initialization code.  I will look into this tomorrow, unless someone
wants to do it first.

The relevant functions are `image_create_bitmap_from_data' and
`image_create_pattern_from_pixbuf' in image.c.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#64969: 30.0.50: Stipple broken with PGTK
  2023-07-31 13:47 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-08-01  2:35   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-08-01  9:27     ` magnus
  0 siblings, 1 reply; 5+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-08-01  2:35 UTC (permalink / raw)
  To: magnus; +Cc: 64969

Po Lu <luangruo@yahoo.com> writes:

> magnus@therning.org writes:
>
>> The code
>>
>> (let* ((w (window-font-width))
>>       (stipple `(,w 1 ,(apply #'unibyte-string
>> 			       (append (make-list (1- (/ (+ w 7)
>> 			       8)) ?\0)
>> 				       '(1))))))
>>  (insert "\n" (propertize (concat  (make-string 15 ?\s)
>> 				    "THIS IS A TEST"
>> 				    (make-string 15 ?\s))
>>                           'face `(:background "red" :foreground
>>                           "blue" :stipple ,stipple))))
>>
>> doesn't have the expected result, i.e. the text is not blue on red
>> background.
>>
>> More information leading to this report can be found at
>> https://github.com/jdtsmith/indent-bars/issues/3
>
> I think this owes to an inconsistency between the PGTK and X bitmap
> initialization code.  I will look into this tomorrow, unless someone
> wants to do it first.
>
> The relevant functions are `image_create_bitmap_from_data' and
> `image_create_pattern_from_pixbuf' in image.c.

I think this should now have been fixed on the master branch; the change
was too involved for Emacs 29.  Please test and ack, thanks.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#64969: 30.0.50: Stipple broken with PGTK
  2023-08-01  2:35   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-08-01  9:27     ` magnus
  2023-08-02  0:14       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 5+ messages in thread
From: magnus @ 2023-08-01  9:27 UTC (permalink / raw)
  To: Po Lu; +Cc: 64969

[-- Attachment #1: Type: text/plain, Size: 1900 bytes --]


Po Lu <luangruo@yahoo.com> writes:

> Po Lu <luangruo@yahoo.com> writes:
>
>> magnus@therning.org writes:
>>
>>> The code
>>>
>>> (let* ((w (window-font-width))
>>>       (stipple `(,w 1 ,(apply #'unibyte-string
>>> 			       (append (make-list (1- (/ (+ w 7)
>>> 			       8)) ?\0)
>>> 				       '(1))))))
>>>  (insert "\n" (propertize (concat  (make-string 15 ?\s)
>>> 				    "THIS IS A TEST"
>>> 				    (make-string 15 ?\s))
>>>                           'face `(:background "red" 
>>>                           :foreground
>>>                           "blue" :stipple ,stipple))))
>>>
>>> doesn't have the expected result, i.e. the text is not blue on 
>>> red
>>> background.
>>>
>>> More information leading to this report can be found at
>>> https://github.com/jdtsmith/indent-bars/issues/3
>>
>> I think this owes to an inconsistency between the PGTK and X 
>> bitmap
>> initialization code.  I will look into this tomorrow, unless 
>> someone
>> wants to do it first.
>>
>> The relevant functions are `image_create_bitmap_from_data' and
>> `image_create_pattern_from_pixbuf' in image.c.
>
> I think this should now have been fixed on the master branch; 
> the change
> was too involved for Emacs 29.  Please test and ack, thanks.

Yes! That change fixed it.

I verified the above elisp expression (in fundamental mode) both 
in a "bare emacs" (emacs -q) and in my own config. The behaviour 
is now exactly as expected.

It also works well with the indent-bars[1] package.

Thanks so much for the very fast fix.

/M

[1]: https://github.com/jdtsmith/indent-bars

-- 
Magnus Therning                   OpenPGP: 0x927912051716CE39
email: magnus@therning.org
@magthe@mastodon.technology       http://magnus.therning.org/

`Ford, you're turning into a penguin. Stop it.'

— Arthur experiences the improbability drive at work.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 861 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#64969: 30.0.50: Stipple broken with PGTK
  2023-08-01  9:27     ` magnus
@ 2023-08-02  0:14       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 5+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-08-02  0:14 UTC (permalink / raw)
  To: magnus; +Cc: 64969-done

magnus@therning.org writes:

> Yes! That change fixed it.
>
> I verified the above elisp expression (in fundamental mode) both in a
> "bare emacs" (emacs -q) and in my own config. The behaviour is now
> exactly as expected.
>
> It also works well with the indent-bars[1] package.
>
> Thanks so much for the very fast fix.
>
> /M
>
> [1]: https://github.com/jdtsmith/indent-bars

I'm closing this bug then, thanks.





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-08-02  0:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-31  8:05 bug#64969: 30.0.50: Stipple broken with PGTK magnus
2023-07-31 13:47 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-01  2:35   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-01  9:27     ` magnus
2023-08-02  0:14       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).