all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Jan D." <jan.h.d@swipnet.se>
Cc: emacs-devel@gnu.org
Subject: Re: GTK pixmap background support?
Date: Thu, 14 Aug 2003 18:30:04 +0200	[thread overview]
Message-ID: <8F1738F1-CE74-11D7-BA9D-00039363E640@swipnet.se> (raw)
In-Reply-To: <buosmo5ked7.fsf@mcspd15.ucom.lsi.nec.co.jp>

> This means that calls to XClear*, and exposures, will start out with 
> the
> correct background color, and emacs need only worry about changing 
> other
> things.  When using the GTK toolkit, GTK itself apparently uses
> XSetWindowBackground for its own purposes, but the xg_set_background 
> gives
> GTK enough info to keep things basically how emacs likes.

Yes, since the display engine in Emacs uses X calls, GTK must be kept
in sync so it doesn't mess things up.

>
> However, with pixmap backgrounds, I want to use 
> `XSetWindowBackgroundPixmap'
> instead -- but there doesn't appear to be any equivalent call to
> `gtk_widget_modify_bg' that takes a pixmap instead of a color!  So you 
> can
> see the problem:  even though I've done a XSetWindowBackgroundPixmap, 
> GTK
> will at some point set the window background to a color, and there 
> doesn't
> seem to be any way to tell it not to, so clears/exposures come out
> incorrectly.
>
> As it happens, I think I have to support more complete redrawing modes 
> in
> emacs anyway (for more complicated background tiling than just simple
> frame-relative pixmaps), but it would be nice to be able to use the 
> native X
> calls when possible, as it's more efficient, and probably going to be 
> less
> buggy for a while... :-)
>
> So can you see any possible GTK solution to this qunadary?  I thought 
> maybe
> it would possible to do something tricky by consing up a theme or 
> something,
> but that seems rather hairy and certainly beyond my limited experience.

I have no solution to this.  I disabled setting of a background pixmap
by GTK themes because of the problems you are seeing.  I suspect you
need to look at the GTK (or rather GDK) code to see exactly what it
is doing, and how Emacs can work with it.

In general you set a background pixmap with styles.  If you look at
xg_create_frame_widgets (near the end) in gtkutil.c, you can see how
it is disabled.  By setting bg_pixmap in a GtkStyle to a suitable
GdkPixmap, and the apply the style to the widget, you can set a 
background
pixmap for the GTK widget.

	Jan D.

  reply	other threads:[~2003-08-14 16:30 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-08-13 11:04 GTK pixmap background support? Miles Bader
2003-08-14 16:30 ` Jan D. [this message]
2003-08-18  6:42   ` Miles Bader

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8F1738F1-CE74-11D7-BA9D-00039363E640@swipnet.se \
    --to=jan.h.d@swipnet.se \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.