Opened 13 years ago

Last modified 8 years ago

#8035 closed bug

BColorControl not redrawn when switching to and from 8-bit (256 color) mode — at Version 4

Reported by: jscipione Owned by: axeld
Priority: low Milestone: R1
Component: Kits/Interface Kit Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description (last modified by jscipione)

BColorControl doesn't redraw itself when switching to or from 8-bit (256 color) mode. Perhaps the app server should tell all controls to redraw themselves when you switch modes.

Change History (6)

by jscipione, 13 years ago

Screenshot showing a BColorControl object in the Desktop Preferences pane fail to get redrawn when switching from 8-bit mode to 32-bit mode.

comment:1 by pulkomandy, 13 years ago

Component: Servers/app_serverKits/Interface Kit
Priority: normallow

Redrawing is not enough, as BColorControl is a complex BView with other controls inside. Basically the only way out is destroying it entirely and building an entirely new one. But this risks breaking stuff around it for example if used in a layouted window...

Everything is obviously redrawn properly, as you can see when switching to 32 bit all controls use the available colors :). So the bug is in the interface kit. Switching component and changing priority.

in reply to:  1 comment:2 by axeld, 13 years ago

Replying to pulkomandy:

Redrawing is not enough, as BColorControl is a complex BView with other controls inside. Basically the only way out is destroying it entirely and building an entirely new one. But this risks breaking stuff around it for example if used in a layouted window...

Not really. All it would have to do is update its cell size -- it does all the drawing itself, and the only other controls are not affected in palette mode AFAIK (even then they could be hidden/shown as needed).

comment:3 by rudolfc, 8 years ago

Actually also other colorspaces don't issue a redraw. So switch between any from: CMAP8, 15,16 and 32bit modes..

comment:4 by jscipione, 8 years ago

Description: modified (diff)

by jscipione, 8 years ago

Attachment: modeswitch.patch added

Propegate B_SCREEN_CHANGED message to views, BColorControl reads message and rebuilds itself

Note: See TracTickets for help on using tickets.