]> Pileus Git - ~andy/gtk/blob - TODO
Disallow pasting into non-editable widgets.
[~andy/gtk] / TODO
1 TODO BEFORE GTK 1.0
2 -------------------
3
4 Bugs:
5  * pasting into a GtkEntry that already has a very long string,
6    causes the app to hang.
7  
8  * Vertical scrollbar: the expose event looks hosed and is causing 
9    quite a bit of flickering
10    Actually this affects both scrollbar implementation, you can best
11    tell if you run the application with --sync (timj)
12    
13  * remove gtk_tree_item_idle_hack from gtktreeitem.c.
14
15  * signal parameters don't seem to get refreshed on recursive invokations
16    of GTK_NO_RECURSE signals, which causes the restarted emissions to loose
17    their actual point, i.e. parameter changes on the restarted emission,
18    needs further investigation.
19
20  * the GtkText widget needs to be fixed, that means no segfaults, full editing
21    facilities, omit the background pixmap for now.
22
23  * Widget redrawing when the window resizes sometimes messes up.
24    GtkLabels sometimes redraw without clearing up the underlying background on
25    window resizes.
26  
27  * Are there still some GtkCList changes outstanding? (Jay Painter)
28    GtkCList is derived from GtkContainer but doesn't implement the
29    need_resize, focus, add and remove methods from containers.
30    it should at least issue a warning upon invokation of not supported
31    member functions.
32
33  * GtkTree and GtkList should express in their *_add implementations,
34    that they expect GtkListItems/GtkTreeItems as children. Similar
35    things might apply to other containers.
36
37  * delay dnd settings to take effect once a widget is realized, this is
38    to avoid force realizations. i think this goes along with owens dnd
39    changes?
40     -timj
41    The way DND data types are set in GtkWidget really needs to be fixed.
42    This is pretty high on my priority list, and I'll get to it as soon as
43    the column list widget is done.  The correct way dnd data needs to be set
44    is to have a additional keyed data type with GtkWidget, which is applied to
45    the widget's window upon realize.
46    There also needs to be a way to set dnd-data on widget windows which are
47    not the main window (for widgets that create more than one window).
48     -Jay Painter
49    DnD seems to work for me, but yes, there needs to be some sort of
50    gtk_widget layer that makes it easier... Also, adding support for drop
51    zones might be nice.
52     -Elliot
53    This one is reproducabel for me:
54    testgtk --sync
55    popup colorselection
56    drag/drop works
57    start up preview color
58    drag works but not dropping
59    end preview color
60    drag/drop works
61    start up prewiev color
62    segfault in malloc
63     -timj
64
65  * Change bitfields to guints from enums for C++ ?
66
67  * Force paned window handle to be kept on screen
68
69 Additions:
70  * widgets which are redrawn because of a gtk_widget_draw(,NULL) should
71    be removed from the redraw queue.
72    
73  * it might be good to ues stdio and getch() instead of 1-character reads.
74    so one can take advantage of buffering. Currently each read() takes a separate
75    syscall.
76    
77  * implement gtk_default_draw_oval
78  
79  * Lists should scroll to center the recently selected item if it isn't
80    visible.
81
82  * enforce invariants on *_RESIZE* and *_REDRAW* flags.
83
84  * asure that child widgets are really get gtk_widget_destroy()ed in their
85    parents destroy handler, and not just unparented or somesuch.
86
87  * GtkToolTips:
88    allocate GtkTooltipsData from memchunks
89    look into incorporation of old/gtk-dairiki-971208-[01].patch.gz
90                           
91  * Make widget attributes configurable after the widget is created (timj).
92
93  * Change gtk_widget_propagate_default_style() mechanism to
94    void gtk_rc_string_export (const gchar *rc_additions,
95                               gboolean     override_rc_styles);
96  
97 TODO AFTER GTK 1.0
98 ------------------
99
100  * Make all widget attributes configurable after the widget is created (timj).
101
102  * Seperate GtkObject and signaling system from Gdk dependancies?
103   
104  * move *_input_add (wrappers for select(2)) mechanism into glib.
105
106  * Make sure a widget added to a list is a list item and a widget added
107    to a menu is a menu item, etc. GTK_BASIC was a first attempt at this,
108    but it fails with subsequent container_add()s. maybe have another
109    GTK_PARENT_BASIC (similar to GTK_PARENT_SENSITIVE) flag, to prevent
110    tree iterations upon every container addition.
111
112  * gdk_expose_compress: ala-Xt, this would really help for opaque moves and
113    such
114
115  * Entry should have a password mode (and it should show stars
116    for user feedback).
117
118  * More dialogs? Print, GtkFontSelector, maybe others...
119
120  * Multiple document interface (MDI)?
121
122  * Support another widget style? Should be possible using GtkStyle's, but
123    there may be some work needed to remove any style dependencies in widget
124    code. Maybe GtkStyle's should have 'draw_push_button', 'draw_check_button',
125    etc, functions to draw the various widgets.
126    This will be covered by upcoming themability, raster is working on it.
127  
128  * make the gtk_main callbacks consistent in their add/remove behaviour.
129  
130  * More work on Documentation
131
132  * Check return values on all calls to XIC[Get/Set]Values
133
134  * Rewrite the interface to the i18n stuff so GTK widgets don't need to
135    retrieve X values, and so they don't have to know the value of the
136    XNxxx character constants.
137
138  * The "-geometry" option should be supported
139
140   - Having gdk_init() parse the geometry option. (putting it into
141     GDK means you can use XParseGeometry() without wrapping it)
142
143   - Add a call gdk_get_geometry() that retrieves the results 
144     in a form like that returned by XParseGeometry()
145
146   - The application then can modify the results (as would gemvt)
147     then call a routine gtk_window_set_geometry() on whatever
148     it considers to be its main window.
149
150   - Then in some manner GtkWindow takes that into account when
151     setting its hints. (Probably it uses the size and position
152     as the current uposition and usize, and modulates that
153     be the equivalents of the X flags
154
155      XValue, YValue, WidthValue, HeightValue, XNegative, or YNegative
156
157     ( You'd have to extend gdk_window_set_hints to accept the
158       window gravity option to get it right. )
159
160  * Text/Edit widget: (some of these might be bugs that should be fixed now)
161
162   Bugs:
163
164   - In Entry and Text widget, you can ungrab while still
165     dragging by pressing button-1, pressing button 3, releaseing 3,
166     then releasing 1.
167
168   - When selecting on a Text or Entry widget, the selection isn't
169     claimed until you release the button, and that shows by the
170     color of the selection. (Which is the real problem - it probably
171     is OK/better to delay claiming the selection) [fixed]
172
173   - Related to the above, when you Shift/arrow to select text, the
174     selected text doesn't show that you have the selection immediately.
175
176   - Selecting an entire line with triple-click doesn't work right - 
177     it should select the wrapped portion too.
178
179   - Selecting an entire line should probably select the newline as
180     well, so when the selection is cut/deleted, the newline goes
181     along.
182
183   - Inserting text in a different property - problems? Shouldn't
184     split the last position off in any case.
185
186   - Do something about the bg pixmap situation. (It will produce
187     garbage when editing is enabled)
188
189   - "Copy" removes selection
190  
191   Improvements:
192
193   - Finish making the key bindings consistent between the Entry
194     and Text widgets
195
196   - Unify the key binding support in some fashion between the
197     two widgets (???)
198
199   - When inserting or deleting large chunks of text, do a freeze/thaw
200     automatically, to avoid scrolling around for ever on screen.
201
202   - Jump scroll on large insertions/deletions
203
204   - Prune the line start cache. But since it is only 68 bytes
205     per line, and it is a lot faster when lines are in the cache,
206     it may be better not to, at least for now.
207
208   - Show the non-editable state by changing colors. (Use the
209     style entries for insensitive?)
210
211   - Multibyte support for the Text widget.
212
213   - Unicode support to do the multi-byte right.
214
215   - Support an .inputrc. (The readline one doesn't really work,
216     unless it is extended because it can't represent X keysyms,
217     just terminal type input)
218
219   - A vi mode
220
221   - Word wrap, instead of line folding. (Should the continuation
222     characters be shown?)
223
224   - Horizontal scrolling
225
226   - Disable pasting compound text
227
228  ? Allow moving the separator for paned widgets by dragging 
229    it directly instead of using the handle. 
230
231  ? Mark public use of gtk_tree_remove_item as deprecated - it should be used
232    as:
233          gtk_container_remove (GTK_CONTAINER(tree), widget);
234
235  * Standardize that all strings should be passed as gchar *, not 
236    guchar *. But what about non-string data? (gdk_property_change,
237    gtk_selection_data_set) X makes these sort of things guchar...
238
239  * Check into XAddConnectionWatch - is this needed for XIM?
240
241  * Places where a _full variant is needed:
242
243     gtk_clist_set_row_data
244     gtk_init_add
245     gtk_menu_popup
246     gtk_toolbar_prepend_element
247     gtk_toolbar_insert_element
248     gtk_widget_dnd_data_set (should be guchar * with a copy?
249                              shouldn't be there at all...)
250     ??? GtkDrawingarea.draw_data