[Wayland-bugs] [Bug 744932] Wrong (ultra tiny/small) cursor size on HiDPI screen
mutter (GNOME Bugzilla)
bugzilla at gnome.org
Mon Jul 6 12:58:17 PDT 2015
https://bugzilla.gnome.org/show_bug.cgi?id=744932
--- Comment #42 from Owen Taylor <otaylor at redhat.com> ---
(In reply to Jonas Ã…dahl from comment #39)
> > That all being said I have some specific concerns about MetaCursorSprite vs.
> > MetaCursorSpriteWayland.
> >
> > MetaCursorSprite, as I understand it, is basically similar to
> > MetaCursorReference - it's basically a union of different ways to specify
> > the appearance of a cursor. A wayland-specific subclass of this might make
> > sense so that it can store along with the appearance a pointer back to a
> > Wayland object. But a Wayland specific subclass shouldn't gain entirely new
> > capabilities like looking going out and looking at where it is relative to
> > the monitors and reloading the theme image at a different size.
> >
> > I feel like the parent class is fur, and the subclass is a cat!
>
> That might be because when an X CM, the cat lives in the X server, but in
> Wayland we are the cat.
I don't want to push metaphors too hard, but if we think that in the "X CM"
case, the cat is in the X server, then in that case, our object should still be
a cat, even if it's a remote control cat-shaped toy.
> >
> > Things to think about for improving the design:
> >
> > - Do some pieces (like loading from the theme at a different size) work
> > better in the generic code, even if they are only ever used in the Wayland
> > case?
>
> This is why I put it in the Wayland object; it only ever makes sense do do
> it there.
My suggestion is the opposite - sometimes it makes sense to do things in the
base class *even if they are only ever used in one subclass* - this can enhance
encapsulation, avoid unnecessary virtualization, or just make things make more
sense.
[...]
> Maybe we should have such a abstraction, not calling it Wayland but "display
> server", and then hook wl_surface etc to it some other way and put it under
> a "protocols/" directory. Not sure what to call that though; its neither
> "winsys", "protocol" or "frontend".
>
> I.e. something like
>
> backends/
> x11/
> cm/
> nested/
> protocols/
> wayland/
> x11/
> xwayland/ (funky mix of the two above)
> "running mode"/
> x11_cm/
> display_server/
>
> ?
>
> MetaCursorSprite would go under "running mode"/ and under protocols we'd
> have a MetaWaylandCursor which interacts with MetaCursorSprite.
Hmm, I think the directory organization is getting ahead of the code
organization. How do we replace the cases where we have
meta_is_wayland_compositor() conditionals? How do we move x11 and wayland
specific code out of common source files in core/ and compositor/? Having nice
clean subdirectories doesn't make sense if we can't move the relevant code
there.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-bugs/attachments/20150706/52166df7/attachment.html>
More information about the wayland-bugs
mailing list