diff options
| author | graydon <graydon@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-06-17 23:43:16 +0000 |
|---|---|---|
| committer | graydon <graydon@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-06-17 23:43:16 +0000 |
| commit | b70627eb78d5b6c9e352ba8472ccc3188a815558 (patch) | |
| tree | 0b7a36fdca2f61d07e5d16b523a65334e7f98cc3 /libjava/jni | |
| parent | 2c549db69a9ec8176cff19d47f61e5d4d6b6477f (diff) | |
| download | ppe42-gcc-b70627eb78d5b6c9e352ba8472ccc3188a815558.tar.gz ppe42-gcc-b70627eb78d5b6c9e352ba8472ccc3188a815558.zip | |
2004-06-17 Michael Koch <konqueror@gmx.de>
* javax/swing/JToolBar.java
(name): Removed.
(JToolBar): Use Component.setName(String) instead of doing it all
alone.
* javax/swing/Timer.java
(queueEvent): Added missing modifier.
2004-06-17 Olga Rodimina <rodimina@redhat.coom>
* Makefile.am: Added new file.
* Makefile.in: Re-generate.
* javax/swing/JMenu.java:
(insertSeparator): Implemented.
* javax/swing/JPopupMenu.java:
(JPopupMenu.Separator): Implemented.
* javax/swing/MenuSelectionManager.java:
(processMouseEvent): Use java.awt.Component
for event source instead of javax.swing.JComponent.
* javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.java:
New File. Implemented.
2004-06-16 David Jee <djee@redhat.com>
* java/awt/GridBagLayout.java
(GetLayoutInfo): Adjust cell sizes iff parent size is not zero.
Make sure pos_x and pos_y are never negative.
2004-04-16 Andrew Overholt <overholt@redhat.com>
* Makefile.am: Add new file.
* Makefile.in: Re-generate.
* javax/swing/JToolBar.java
Partially implemented.
* javax/swing/plaf/basic/BasicToolBarUI.java
New file. Partially implemented.
2004-06-16 Graydon Hoare <graydon@redhat.com>
* gnu/java/awt/peer/gtk/GdkGraphics2D.java
(setComposite): Accept AlphaComposite arguments.
* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
(createBufferedImage): Add new overloads.
* gnu/java/awt/peer/gtk/GtkToolkit.java
(createImage): Use GdkPixbufDecoder.createBufferedImage
when useGraphics2D() is true.
(getImage): Delegate to createImage.
* javax/swing/JList.java
(isSelectionEmpty):
(getFirstVisibleIndex):
(getLastVisibleIndex):
(setSelectedValue):
(ensureIndexIsVisible): New methods.
* javax/swing/Timer.java: Reimplement.
2004-06-16 Michael Koch <konqueror@gmx.de>
* javax/swing/text/AbstractDocument.java
(AbstracElement): Made public, implements java.io.Serializable.
(AttributeContext): Made public.
(BranchElement): Likewise.
(Content): Likewise.
(DefaultDocumentEvent): Made public, extends
javax.swing.undo.CompoundEdit.
(ElementEdit): Made public, extends
javax.swing.undo.AbstractUndoableEdit.
(LeafElement): Made public.
(LeafElement.LeafElement): Made public.
2004-06-16 Michael Koch <konqueror@gmx.de>
* javax/swing/text/JTextComponent.java: Totally reworked. Removed many
methods (that were obviously never be intended to get included hi this
class. Added some methods too.
2004-06-16 Michael Koch <konqueror@gmx.de>
* javax/swing/text/PlainDocument.java
(serialVersionUID): New constant.
(lineLimitAttribute): Likewise.
(tabSizeAttribute): Likewise.
(tabSize): New field.
(PlainDocument): Made public.
(PlainDocument): New constructor.
2004-06-16 Michael Koch <konqueror@gmx.de>
* javax/swing/text/AbstractDocument.java
(insertString): Throws BadLocationException.
* javax/swing/text/Document.java
(insertString): Likewise.
* javax/swing/text/JTextComponent.java:
Javadocs and comments cleaned up.
2004-06-16 Michael Koch <konqueror@gmx.de>
* javax/swing/event/UndoableEditListener.java: Reformatted.
* javax/swing/text/AbstractDocument.java
(AbstractDocument): Implements java.io.Serializable.
(doc_list): Removed.
(undo_list): Removed.
(AbstractElement.serialVerionUID): New field.
(BranchElement.serialVerionUID): Likewise.
(DefaultDocumentEvent.serialVerionUID): Likewise.
(ElementEdit.serialVerionUID): Likewise.
(LeafElement.serialVerionUID): Likewise.
(serialVerionUID): Likewise.
(BAD_LOCATION): New constant.
(BidiElementName): Likewise.
(ContentElementName): Likewise.
(ParagraphElementName): Likewise.
(SectionElementName): Likewise.
(ElementNameAttribute): Likewise.
(AbstractDocument): Made protected.
(AbstractDocument): New construtor.
(listenerList): New field.
(fireChangedUpdate): Implemented.
(fireInsertUpdate): Likewise.
(fireRemoveUpdate): Likewise.
(fireUndoableEditUpdate): Likewise.
(getListeners): Likewise.
(addDocumentListener): Likewise.
(removeDocumentListener): Likewise.
(addUndoableEditListener): Likewise.
(removeUndoableEditListener): Likewise.
(getDocumentListeners): New method.
(getUndoableEditListeners): Likewise.
(getAsynchronousLoadPriority): Made public.
(getBidiRootElement): Likewise.
(setAsynchronousLoadPriority): Likewise.
(setDocumentProperties): Likewise.
* javax/swing/text/BadLocationException.java
(serialVerionUID): New field.
* javax/swing/text/DefaultCaret.java
(changeEvent): New field.
(listenerList): Likewise.
(changes): Removed.
(addChangeListener): Reimplemented.
(removeChangeListener): Likewise.
(getListeners): New method.
(getChangeListeners): Likwise.
(getComponent): Likewise.
* javax/swing/text/GapContent.java
(GapContent): Implements java.io.Serializable.
(serialVerionUID): New field.
2004-06-16 Michael Koch <konqueror@gmx.de>
* javax/swing/JTree.java
(treeModel): New field.
(JTree): New constructors, one existing one made public.
(createTreeModel): New method.
(addTreeExpansionListener): Likewise.
(removeTreeExpansionListener): Likewise.
(getTreeExpansionListeners): Likewise.
(fireTreeCollapsed): Likewise.
(fireTreeExpanded): Likewise.
(addTreeSelectionListener): Likewise.
(removeTreeSelectionListener): Likewise.
(getTreeSelectionListeners): Likewise.
(fireValueChanged): Likewise.
(addTreeWillExpandListener): Likewise.
(removeTreeWillExpandListener): Likewise.
(getTreeWillExpandListeners): Likewise.
(fireTreeWillCollapse): Likewise.
(fireTreeWillExpand): Likewise.
2004-06-16 Michael Koch <konqueror@gmx.de>
* javax/swing/JTree.java: Reformatted.
2004-06-16 Michael Koch <konqueror@gmx.de>
* javax/swing/JTextArea.java: New file.
* javax/swing/JTextField.java
(actions): Removed.
(notifyAction): New constant.
(columns): New field.
(JTextField): New constructors.
(createDefaultModel): New method.
(addActionListener): Reimplmemented.
(removeActionListener): Reimplemented.
(getActionListeners): New method.
(fireActionPerformed): New method.
(getColumns): New method.
(setColumne): New method.
* javax/swing/text/JTextComponent.java
(AccessibleJTextComponent.serialVersionUID): New field.
(serialVersionUID): Likewise.
(DEFAULT_KEYMAP): Likewise.
(FOCUS_ACCELERATOR_KEY): Likewise.
(doc): Made private.
(icon_gap): Likewise.
(icon): Likewise.
(align): Likewise.
(JTextComponent): Some constructors removed.
(getScrollableTracksViewportHeight): New method.
(getScrollableTracksViewportWidth): Likewise.
* Makefile.am: Added javax/swing/JTextArea.java.
* Makefile.in: Regenerated.
2004-06-15 Graydon Hoare <graydon@redhat.com>
* javax/swing/ImageIcon.java (ImageIcon): New constructor.
* javax/swing/JFrame.java (defaultLookAndFeelDecorated): New property.
* javax/swing/JViewport.java
(getExtentSize): Return size rather than preferred size.
(toViewCoordinates): New methods.
(getViewSize): Return size rather than preferred size.
(setViewSize): Note view size as set.
* javax/swing/ViewportLayout.java (layoutContainer): Reimplement.
* javax/swing/plaf/basic/BasicScrollBarUI.java
(getPreferredSize): Don't redo layout.
* javax/swing/plaf/basic/BasicViewportUI.java
(paint): Translate image properly and eat exceptions.
2004-06-15 Kim Ho <kho@redhat.com>
* javax/swing/JTabbedPane.java
(setComponent): Remove old component and
add new component.
(setSelectedIndex): Don't operate on the
components if they're null. Don't set index
on the model if the index is the same.
(insertTab): Don't add or hide the component
if it's null. Repaint the container.
* javax/swing/plaf/basic/BasicLookAndFeel.java
Change colors for TabbedPane.
* javax/swing/plaf/basic/BasicTabbedPaneUI.java
(mousePressed): Re-layout and paint the component.
(layoutContainer): Don't set location on the view.
(ScrollingViewport::paint): Remove.
2004-06-14 Thomas Fitzsimmons <fitzsim@redhat.com>
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
(gtkWidgetDispatchKeyEvent): Change warning message to comment.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (drawString):
Wrap baseline y value in PANGO_PIXELS macro, rather than simply
dividing by PANGO_SCALE. Call gdk_flush before leaving GDK
critical region.
(drawLine): Call gdk_flush before leaving GDK critical region.
(fillRect): Likewise.
(drawRect): Likewise.
(copyArea): Likewise.
(copyPixmap): Likewise.
(clearRect): Likewise.
(drawArc): Likewise.
(drawPolyline): Likewise.
(drawPolygon): Likewise.
(fillPolygon): Likewise.
(fillArc): Likewise.
(drawOval): Likewise.
(fillOval): Likewise.
* gnu/java/awt/peer/gtk/GdkFontMetrics.java (initState): Add
style parameter.
(GdkFontMetrics): Add style argument to initState call.
(stringWidth(String,int,int,String)): Add style parameter.
(stringWidth(String)): Add style argument to stringWidth call.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c
(initState): Set pango font style and weight based on AWT style
parameter. Pass default GTK language to
pango_context_get_metrics. Use PANGO_PIXELS macro rather than
simply dividing by PANGO_SCALE.
(stringWidth): Set pango font style and weight based on AWT style
parameter.
* java/awt/Button.java (next_button_number): New field.
(paramString): Change output.
(generateName): New method.
(getUniqueLong): New method.
2004-06-14 Kim Ho <kho@redhat.com>
* javax/swing/JTabbedPane.java:
(setComponentAt): Set the component, not
the enabled status.
* javax/swing/plaf/basic/BasicDesktopIconUI.java
(actionPerformed): Let deiconize catch exception.
2004-06-14 Olga Rodimina <rodimina@redhat.com>
* javax/swing/JPopupMenu.java:
(setVisible): Corrected location of a
heavyweight popup menu.
2004-06-14 Olga Rodimina <rodimina@redhat.com>
* javax/swing/MenuSelectionManager.java:
Ran through jalopy to fix formatting style.
2004-06-14 Olga Rodimina <rodimina@redhat.com>
* javax/swing/JLayeredPane.java:
(remove): Revalidate and repaint layered pane after
the component was removed.
javax/swing/JMenu.java:
(setVisible): Display popup menu at the user location,
if one was set by the user.
(setMenuLocation): Reimplemented. Fixed javadoc.
* javax/swing/JMenuBar.java: Added javadoc.
(BORDER_PAINTED_CHANGED_PROPERTY): New Property.
(MODEL_CHANGED_PROPERTY): New Property.
(isSelected): Implemented.
(setBorderPainted): Fire PropertyChangeEvent
if paintBorder property changes.
(setSelected): Implemented.
(setSelectionModel): Implemented.
* javax/swing/JPopupMenu.java: Added Javadoc
(pack): Implemented.
(setVisible): Reimplemented.
(show): Fixed location.
(JPopupMenu.LigthWeightPopup): Reimplemented to use
Container instead of JPanel.
* javax/swing/MenuSelectionManager.java: Added Javadocs.
(clearSelectedPath): Reimplemented to clear selectedPath
in reverse order.
(processMouseEvent): Reimplemented.
(setSelectedPath): Fire stateChange event indicating that
selected menu path has changed.
(getPath): Change to use ArrayList instead of Vector.
* javax/swing/plaf/basic/BasicMenuBarUI.java:
(installUI): call installKeyboardActions().
(uninstallUI): call uninstallKeyboardActions().
2004-06-13 Michael Koch <konqueror@gmx.de>
* javax/swing/text/DefaultCaret.java,
javax/swing/text/BadLocationException.java:
Reformatted.
2004-06-12 Thomas Fitzsimmons <fitzsim@redhat.com>
* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java (DEFAULT_ROWS,
DEFAULT_COLS): New variables.
(create): Don't allow 0 rows or 0 columns. Instead, set the
values to DEFAULT_ROWS or DEFAULT_COLS.
(getMinimumSize): Likewise.
(getPreferredSize): Likewise.
(minimumSize): Likewise.
(preferredSize): Likewise.
(create): Set peer's editable state.
* java/awt/TextArea.java (TextArea()): Set rows and columns to
zero. Update javadocs.
(TextArea(String)): Likewise.
(TextArea(int,int)): Fix javadocs.
(TextArea(String,int,int,int)): Only throw exception if one of
rows or columns is zero. Fix javadocs.
2004-06-11 Thomas Fitzsimmons <fitzsim@redhat.com>
* java/awt/AWTEvent.java (toString): Handle MenuComponents in
addition to Components.
* java/awt/MenuItem.java (dispatchEventImpl): If the event
wasn't consumed by normal processing, send it to the parent
menu.
* gnu/java/awt/peer/gtk/GtkImagePainter.java
(setPixels(int,int,int,int,ColorModel,int[],int,int)): Remove
translation.
2004-06-11 David Jee <djee@redhat.com>
* java/awt/MediaTracker.java
(addImage(Image,int)): Call imageUpdate() to udpate image status.
(addImage(Image,int,int,int)): Likewise.
2004-06-11 Michael Koch <konqueror@gmx.de>
* javax/swing/text/AbstractDocument.java,
javax/swing/text/Document.java,
javax/swing/text/GapContent.java,
javax/swing/text/JTextComponent.java,
javax/swing/text/PlainDocument.java:
Reformatted.
2004-06-11 Michael Koch <konqueror@gmx.de>
* javax/swing/JRootPane.java
(AccessibleJRootPane.serialVersionUID): New field.
(AccessibleJRootPane.AccessibleJRootPane): New constructor.
(AccessibleJRootPane.getAccessibleRole): New method.
(RootLayout): Implements Serializable.
(RootLayout.serialVersionUID): New field.
(RootLayout.RootLayout): New constructor.
(setJMenuBar): Made public.
(getJMenuBar): Likewise.
(JRootPane): Likewise.
(createContentPane): Likewise.
(createGlassPane): Likewise.
(createLayeredPane): Likewise.
2004-06-11 Michael Koch <konqueror@gmx.de>
* javax/swing/SwingUtilities.java
(isLeftMouseButton): Fixed javadoc.
(isMiddleMouseButton): Likewise.
(isRightMouseButton): Likewise.
2004-06-11 Michael Koch <konqueror@gmx.de>
* javax/swing/JScrollPane.java
(serialVersionUID): New field.
(columnHeader): Made protected.
(rowHeader): Likewise.
(lowerLeft): Likewise.
(lowerRight): Likewise.
(upperLeft): Likewise.
(upperRight): Likewise.
(horizontalScrollBar): Likewise.
(horizontalScrollBarPolicy): Likewise.
(verticalScrollBar): Likewise.
(verticalScrollBarPolicy): Likewise.
(viewport): Likewise.
2004-06-11 Michael Koch <konqueror@gmx.de>
* javax/swing/LookAndFeel.java: Fixed javadocs.
2004-06-11 Michael Koch <konqueror@gmx.de>
* javax/swing/JEditorPane.java: Fixed javadocs.
(JEditorPane): Removed redundant call to to this().
(fireHyperlinkUpdate): Implemented.
2004-06-10 Olga Rodimina <rodimina@redhat.com>
* javax/swing/JMenu.java: Fixed file name
in the file comment.
2004-06-10 Olga Rodimina <rodimina@redhat.com>
* javax/swing/JMenu.java: Added javadoc.
(JMenu): Added MenuChangeListener to listen to
ChangeEvents occuring in menu's model.
(insert): Throw IllegalArgumentException if
index is less than 0
(setSelected): Reimplement.
(setPopupMenuVisible): Call menu's model isEnabled()
(setDelay): Throw IllegalArgumentException if
given amount of delay is less than 0.
(createActionComponent): Implemented.
(createActionChangeListener): Implemented.
(addSeparator): Implemented.
(getItem): Throw IllegalArgumentException if index is
less than 0.
(getItemCount): Implemented.
(fireMenuSelected): Changed to use menuEvent.
(fireMenuDeselected): Likewise.
(fireMenuCanceled): Likewise.
(setAccelerator): Changed to throw an error if this
method is used.
(doClick): Implemented.
(JMenu.ActionChangedListener): New inner class to handle
PropertyChangeEvents occuring in the actions associated with menu.
* javax/swing/plaf/basic/BasicMenuUI.java: Added javadoc.
(BasicMenuUI): Added PropertyChangeListener to the menu.
(createChangeListener): Implemented.
(createMenuDragMouseListener): Likewise.
(createMenuKeyListener): Likewise.
(createPropertyChangeListener): Likewise.
(uninstallListeners): Likewise.
(BasicMenuUI.MouseInputHandler): Reimplemented.
(BasicMenuUI.PropertyChangeHandler): New class. Not implemented yet.
(BasicMenuUI.ChangeHandler): Likewise.
(BasicMenuUI.MenuDragMouseHandler): Likewise.
(BasicMenuUI.MenuKeyHandler): Likewise.
2004-06-10 David Jee <djee@redhat.com>
* java/awt/MediaTracker.java
(imageUpdate): Only do notifyAll() if the image is complete.
2004-06-10 Olga Rodimina <rodimina@redhat.com>
* javax/swing/JApplet.java:
(getJMenuBar): Made public.
(setJMenuBar): Likewise.
* javax/swing/JFrame.java:
(getJMenuBar): Made public.
(setJMenuBar): Likewise.
* javax/swing/JWindow.java:
(getJMenuBar): Removed.
(setJMenuBar): Removed.
2004-06-10 Michael Koch <konqueror@gmx.de>
* javax/swing/JEditorPane.java
(createEditorKitForContentType): Fixed visibility.
(fireHyperlinkUpdate): Likewise.
(getContentType): Likewise.
(getEditorKit): Likewise.
(getEditorKitForContentType): Likewise.
(getPage): Likewise.
(read): Likewise.
(registerEditorKitForContentTyoe): Likewise.
(replaceSelection): Likewise.
(setContentType): Likewise.
(setEditorKit): Likewise.
(setPage): Likewise.
2004-06-10 Michael Koch <konqueror@gmx.de>
* javax/swing/Timer.java
(Timer): New constructor.
* javax/swing/plaf/basic/BasicProgressBarUI.java
(animationTimer): Don't initialize at construction.
(startAnimationTimer): Added since tag.
(stopAnimationTimer): Likewise.
(installUI): Use new Timer constructor.
* javax/swing/plaf/basic/BasicScrollBarUI.java
(installUI): Likewise.
* javax/swing/plaf/basic/BasicSliderUI.java
(installUI): Likewise.
2004-06-10 Michael Koch <konqueror@gmx.de>
* javax/swing/ButtonGroup.java
(serialVersionUID): Made private.
(buttons): Renamed from v, added javadoc.
(sel): Added javadoc.
(ButtonGroup): Likewise.
(add): Likewise.
(remove): Likewise.
(getElements): Likewise.
(getSelection): Likewise.
(setSelected): Likewise.
(isSelected): Likewise.
(getButtonCount): Likewise.
2004-06-10 Michael Koch <konqueror@gmx.de>
* javax/swing/ButtonGroup.java,
javax/swing/ImageIcon.java,
javax/swing/JEditorPane.java,
javax/swing/JRootPane.java,
javax/swing/JTextField.java,
javax/swing/LookAndFeel.java,
javax/swing/plaf/basic/BasicTextUI.java:
Reindented.
2004-06-10 Michael Koch <konqueror@gmx.de>
* javax/swing/text/Style.java: Added javadocs.
2004-06-10 Michael Koch <konqueror@gmx.de>
* javax/swing/JComponent.java
(fireVetoableChange): Removed redundant cast.
* javax/swing/JLabel.java
(getDisabledIcon): Save icon for next call.
2004-06-10 Michael Koch <konqueror@gmx.de>
* javax/swing/KeyStroke.java
(getKeyStroke(char,boolean)): Marked deprecated.
2004-06-10 Michael Koch <konqueror@gmx.de>
* javax/swing/DefaultCellEditor.java,
javax/swing/GrayFilter.java,
javax/swing/event/DocumentEvent.java,
javax/swing/text/JTextComponent.java,
javax/swing/text/MutableAttributeSet.java:
Reindented.
2004-06-10 Michael Koch <konqueror@gmx.de>
* javax/swing/plaf/BorderUIResource.java:
Added serialVersionUID all over.
2004-06-10 Sascha Brawer <brawer@dandelis.ch>
* javax/swing/undo/UndoManager.java: Re-written from scratch.
2004-06-10 Michael Koch <konqueror@gmx.de>
* javax/swing/table/DefaultTableCellRenderer.java
(noFocusBorder): Initialize directly.
2004-06-10 Michael Koch <konqueror@gmx.de>
* javax/swing/plaf/basic/BasicArrowButton.java
(setDirection): Use method argument.
2004-06-10 Michael Koch <konqueror@gmx.de>
* javax/swing/plaf/BorderUIResource.java,
javax/swing/plaf/ComponentUI.java,
javax/swing/undo/CompoundEdit.java,
javax/swing/undo/StateEdit.java:
Fixed javadocs all over.
2004-06-10 Michael Koch <konqueror@gmx.de>
* javax/swing/DefaultButtonModel.java
(ARMED): Made public final, fixed value.
(ENABLED): Likewise.
(PRESSED): Likewise.
(ROLLOVER): Likewise.
(SELECTED): Likewise.
(stateMask): Initialize directly.
(listenerList): Likewise.
(mnemonic): Likewise.
(fireStateChanged): Removed argument, use changeEvent as event.
All places where this method is called are fixed too.
(getActionCommant): Fixed javadoc.
(setGroup): Fixed javadoc.
(getGroup): New method.
2004-06-09 Olga Rodimina <rodimina@redhat.com>
* javax/swing/AbstractButton.java
(AbstractButton): Use init() to initialize the button.
(init): New Method. Initializes AbstractButton.
* javax/swing/JMenuItem.java: Documented.
(JMenuItem): Reimplemented.
(init): Implemented.
(setEnabled): Changed to call super.setEnabled()
(processMouseEvent): Reimplemented.
(fireMenuKeyPressed): Implemented.
(fireMenuKeyReleased): Implemented.
(fireMenuKeyTyped): Implemented.
(menuSelectionChanged): disarm the model if the menu item was
deselected.
* javax/swing/plaf/basic/BasicMenuItemUI.java:Documented.
(getPath): Change to use ArrayList instead of Vector.
(getPreferredSize): Renamed variable.
(paintMenuItem): Paint margin area of menu item.
(MouseInputHandler.mouseEntered): Set selection in MenuSelectionManager.
(MouseInputHandler.mouseReleased): Check if mouse was pressed inside
menu item's bounds before clearing the selection.
2004-06-09 David Jee <djee@redhat.com>
* gnu/java/awt/peer/gtk/GtkTextComponentPeer.java
(GtkTextComponentPeer): Set caret position to 0.
* java/awt/TextComponent.java
(setText): Set caret position to 0.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_addExposeFilter):
Handle GtkScrolledWindow separately. Fix signal handler blocking.
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_removeExposeFilter):
Likewise.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
(Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create): Make cursor
visible.
2004-06-09 Kim Ho <kho@redhat.com>
* Makefile.am: New files
* Makefile.in: Regenerated
* java/awt/Container.java
(getComponentAt): Removed.
* javax/swing/AbstractAction.java
(ENABLED_PROPERTY): New property.
(putValue): Fire PropertyChangeEvents.
(setEnabled): ditto.
(firePropertyChange): Javadoc and implement
convenience method.
* javax/swing/AbstractButton.java
(setAction): Don't create PropertyChangeListener
if new Action is null.
(setIcon): Don't set icon till after comparing
it.
(configurePropertiesFromAction): Check mnemonic
key before calling intValue().
(createActionPropertyChangeListener): Check
properties rather than bulk change.
* javax/swing/DefaultDesktopManager.java:
Implement.
* javax/swing/DesktopManager.java:
Jalopy and javadoc.
* javax/swing/JComponent.java
(fireVetoableChange): Implement.
(paintImmediately): Use root component.
* javax/swing/JDesktopPane.java: Implement
* javax/swing/JInternalFrame.java: Implement
* javax/swing/JLabel.java
(getDisabledIcon): Return grayscaled icon if
no disabled icon specified.
* javax/swing/JMenuBar.java
(getComponentAtIndex): Use getComponent
* javax/swing/JOptionPane.java
(getDesktopPaneForComponent): Use SwingUtilities'
getAncestorOfClass
(getFrameForComponent): ditto.
* javax/swing/JSplitPane.java
(remove): Use getComponent.
* javax/swing/SwingUtilities.java
(convertPoint): Implement.
* javax/swing/plaf/basic/BasicButtonUI.java
(paintButtonNormal): Check opaqueness before
filling background.
* javax/swing/plaf/basic/BasicDesktopIconUI.java:
Implement
* javax/swing/plaf/basic/BasicDesktopPaneUI.java:
Implement.
* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java:
Implement.
* javax/swing/plaf/basic/BasicInternalFrameUI.java:
Implement.
* javax/swing/plaf/basic/BasicLookAndFeel.java:
Change InternalFrame and Desktop colors.
2004-06-09 David Jee <djee@redhat.com>
* java/awt/Container.java
(remove): Do not set component to invisible.
2004-06-09 Michael Koch <konqueror@gmx.de>
* javax/swing/tree/DefaultMutableTreeNode.java
(getLeafCount): Renamed enum to e.
2004-06-09 Michael Koch <konqueror@gmx.de>
* javax/swing/plaf/basic/BasicSplitPaneDivider.java
(positionForMouseEvent): Removed redundant semicolon.
(continueDrag): Use method arguments.
2004-06-09 Michael Koch <konqueror@gmx.de>
* javax/swing/border/TitledBorder.java,
javax/swing/filechooser/FileSystemView.java,
javax/swing/plaf/basic/BasicButtonListener.java,
javax/swing/plaf/basic/BasicGraphicsUtils.java,
javax/swing/plaf/basic/BasicLabelUI.java,
javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java,
javax/swing/plaf/basic/BasicScrollBarUI.java,
javax/swing/plaf/basic/BasicScrollPaneUI.java,
javax/swing/plaf/basic/BasicSliderUI.java,
javax/swing/plaf/basic/BasicTabbedPaneUI.java,
javax/swing/plaf/basic/BasicToggleButtonUI.java,
javax/swing/table/JTableHeader.java,
javax/swing/text/AbstractDocument.java,
javax/swing/text/DefaultCaret.java,
javax/swing/text/StyledEditorKit.java,
javax/swing/tree/DefaultTreeCellEditor.java:
Reworked import statements.
2004-06-08 Graydon Hoare <graydon@redhat.com>
* javax/swing/Box.java: Temporarily comment out code
broken due to visibility bug.
2004-06-09 Michael Koch <konqueror@gmx.de>
* javax/swing/ImageIcon.java
(ImageIcon): Added missing constructor.
2004-06-08 Michael Koch <konqueror@gmx.de>
* javax/swing/JToggleButton.java
(JToggleButton): New constructor.
(getAccessibleContext): Moved documentation into javadoc.
(getUIClassID): Likewise.
2004-06-08 Michael Koch <konqueror@gmx.de>
* javax/swing/AbstractButton.java
(getDisabledIcon): Create disabled icon if none exists yet.
2004-06-08 Michael Koch <konqueror@gmx.de>
* javax/swing/plaf/basic/BasicLookAndFeel.java
(initClassDefaults): Added FormattedTextFieldUI.
(loadResourceBundle): Renamed enum to e.
2004-06-08 Michael Koch <konqueror@gmx.de>
* javax/swing/plaf/basic/BasicButtonUI.java
(paintIcon): Simplified.
(paintText): Paint disabled button correctly.
2004-06-08 Michael Koch <konqueror@gmx.de>
* javax/swing/JComponent.java
(createToolTip): Use official JToolTip API.
2004-06-08 Michael Koch <konqueror@gmx.de>
* javax/swing/JToolTip.java
(JToolTip): No arguments in API.
(setTipText): New method.
2004-06-08 Michael Koch <konqueror@gmx.de>
* javax/swing/SwingUtilities.java
(isLeftMouseButton): New method.
(isMiddleMouseButton): New method.
(isRightMouseButton): New method.
2004-06-08 Michael Koch <konqueror@gmx.de>
* javax/swing/AbstractButton.java,
javax/swing/CellRendererPane.java,
javax/swing/JCheckBoxMenuItem.java,
javax/swing/JColorChooser.java,
javax/swing/JComboBox.java,
javax/swing/JComponent.java,
javax/swing/JDesktopPane.java,
javax/swing/JFileChooser.java,
javax/swing/JMenu.java,
javax/swing/JMenuItem.java,
javax/swing/JOptionPane.java,
javax/swing/JPasswordField.java,
javax/swing/JPopupMenu.java,
javax/swing/JProgressBar.java,
javax/swing/JRadioButtonMenuItem.java,
javax/swing/JScrollBar.java,
javax/swing/JSeparator.java,
javax/swing/JSlider.java,
javax/swing/JSplitPane.java,
javax/swing/JTabbedPane.java,
javax/swing/JTextField.java,
javax/swing/JToolBar.java,
javax/swing/text/JTextComponent.java:
Fixed all constructors of accessibility classes.
2004-06-08 Michael Koch <konqueror@gmx.de>
* javax/swing/ScrollPaneLayout.java: Renamed all memeber variables all
over.
2004-06-08 Michael Koch <konqueror@gmx.de>
* javax/swing/Box.java
(AccessibleBoxFiller): Extends AccessibleAWTComponent.
(AccessibleBoxFiller.serialVersionUID): New member variable.
* javax/swing/DefaultButtonModel.java
(stateMask): Made protected.
(listenerList): Likewise.
(changeEvent): Likewise.
(group): Likewise.
(mnemonic): Likewise.
(actionCommand): Likewise.
(getListeners): New method.
(getActionListeners): New method.
(getItemListeners): New method.
(getChangeListeners): New method.
(fireItemStateChanged): Simplified.
(fireActionPerformed): Simplified.
(fireStateChanged): Simplified.
* javax/swing/JFrame.java
(JFrame): Implements WindowContants.
(HIDE_ON_CLOSE): Removed.
(EXIT_ON_CLOSE): Removed.
(DISPOSE_ON_CLOSE): Removed.
(DO_NOTHING_ON_CLOSE): Removed.
(processWindowEvent): Exit with code 0.
(setDefaultCloseOperation): Do security check before setting value.
* javax/swing/JOptionPane.java
(message): Initialize only in constructor.
* javax/swing/JToolTip.java: Removed unused imports.
* javax/swing/JViewport.java
(serialVersionUID): New member variable.
(SIMPLE_SCROLL_MODE): Made final, fixed value.
(BLIT_SCROLL_MODE): Likewise.
(BACKINGSTORE_SCROLL_MODE): Likewise.
(scrollUnderway): Made protected.
(isViewSizeSet): Likewise.
* javax/swing/ListModel.java: Fixed javadoc.
* javax/swing/Popup.java: Likewise.
* javax/swing/RepaintManager.java
(paintDirtyRegions): Don't use internal classes of
java.util.AbstractMap.
* javax/swing/ScrollPaneConstants.java: Reindented.
* javax/swing/ScrollPaneLayout.java
(viewport): Made protected.
(verticalScrollBar): Made protected, renamed to vsb.
(horizontalScrollBar): Made protected, renamed to hsb.
(rowHeader): Made protected, renamed to rowHead.
(columnHeader): Made protected, renamed to colHead.
(lowerLeft): Made protected.
(lowerRight): Made protected.
(upperLeft): Made protected.
(upperRight): Made protected.
(verticalScrollBarPolicy): Made protected, renamed to vsbPolicy.
(horizontalScrollBarPolicy): Made protected, renamed to hsbPolicy.
2004-06-07 Bernd Schmidt <bernds@btinternet.com>
* java/awt/MediaTracker.java (imageUpdate): Only set status to
LOADING if flags has SOMEBITS set.
2004-06-07 Michael Koch <konqueror@gmx.de>
* javax/swing/AbstractButton.java: Reorganized imports.
* javax/swing/ActionMap.java: Likewise.
* javax/swing/DefaultButtonModel.java: Likewise.
* javax/swing/DefaultListModel.java: Likewise.
* javax/swing/ImageIcon.java: Likewise.
(serialVersionUID): New member variable.
* javax/swing/JComboBox.java: Reorganized imports.
* javax/swing/JComponent.java: Likewise.
(ui): Made protected.
(listenerList): Made protected.
(TOOL_TIP_TEXT_KEY): New constant.
(scrollRectToVisible): Removed redundant null check.
* javax/swing/JFrame.java: Reorganized imports.
* javax/swing/JInternalFrame.java: Reorganized imports.
* javax/swing/JProgressBar.java: Likewise.
* javax/swing/JRootPane.java: Likewise.
* javax/swing/JScrollBar.java: Likewise.
* javax/swing/JSeparator.java: Likewise.
* javax/swing/JSlider.java: Likewise.
* javax/swing/JTabbedPane.java: Likewise.
* javax/swing/JTextField.java: Likewise.
* javax/swing/JToolBar.java: Likewise.
* javax/swing/JTree.java: Likewise.
* javax/swing/JViewport.java: Likewise.
* javax/swing/JWindow.java: Likewise.
* javax/swing/KeyStroke.java: Likewise.
* javax/swing/LookAndFeel.java: Likewise.
* javax/swing/MenuSelectionManager.java: Likewise.
* javax/swing/SwingUtilities.java: Likewise.
* javax/swing/Timer.java: Likewise.
* javax/swing/DefaultBoundedRangeModel.java: Fixed javadoc.
* javax/swing/JList.java
(HORIZONTAL_WRAP): Made final, fixed value.
(VERTICAL): Likewise.
(VERTICAL_WRAP): Likewise.
2004-06-07 Michael Koch <konqueror@gmx.de>
* javax/swing/AbstractButton.java
(serialVersionUID): New member variable.
(AccessibleAbstractButton.serialVersionUID): Likewise.
(AbstractButton): Made public.
* javax/swing/Box.java
(AccessibleBox.serialVersionUID): New member variable.
(Filler.serialVersionUID): Likewise.
* javax/swing/DefaultListSelectionModel.java
(serialVersionUID): Likewise.
* javax/swing/JApplet.java
(serialVersionUID): Likewise.
* javax/swing/JCheckBox.java
(serialVersionUID): Likewise.
* javax/swing/JCheckBoxMenuItem.java
(serialVersionUID): Likewise.
(AccessibleJCheckBoxMenuItem.serialVersionUID): Likewise.
* javax/swing/JColorChooser.java
(serialVersionUID): Likewise.
(AccessibleJColorChooser.serialVersionUID): Likewise.
* javax/swing/JComponent.java
(serialVersionUID): Made private.
(AccessibleJComponent.serialVersionUID): New member variable.
* javax/swing/JDesktopPane.java
(serialVersionUID): Likewise.
* javax/swing/JDialog.java
(serialVersionUID): Likewise.
* javax/swing/JFormattedTextField.java
(serialVersionUID): Fixed value.
* javax/swing/JFrame.java
(serialVersionUID): New member variable.
(getDefaultCloseOpertation): Made public.
* javax/swing/JLayeredPane.java
(serialVersionUID): Likewise.
(LAYER_PROPERTY): Made final, fixed value.
(JLayeredPane): Made public.
* javax/swing/JMenu.java
(AccessibleJMenu.serialVersionUID): New member variable.
(WinListener.serialVersionUID): Likewise.
* javax/swing/JMenuBar.java
(serialVersionUID): Likewise.
(getComponentAtIndex): Added @deprecated tag.
* javax/swing/JMenuItem.java
(serialVersionUID): New member variable.
(AccessibleJMenuItem.serialVersionUID): Likewise.
* javax/swing/JOptionPane.java
(serialVersionUID): Likewise.
(AccessibleJOptionPane.serialVersionUID): Likewise.
* javax/swing/JPopupMenu.java
(serialVersionUID): Likewise.
(AccessibleJPopupMenu.serialVersionUID): Likewise.
(getPopupMenuListeners): New method.
(getComponentAtIndex): Added @deprecated tag.
* javax/swing/JProgressBar.java
(serialVersionUID): New member variable.
(AccessibleJProgressBar.serialVersionUID): Likewise.
* javax/swing/JRadioButton.java
(serialVersionUID): Likewise.
* javax/swing/JRadioButtonMenuItem.java
(serialVersionUID): Likewise.
(AccessibleJRadioButtonMenuItem.serialVersionUID): Likewise.
* javax/swing/JScrollBar.java
(serialVersionUID): Likewise.
(AccessibleJScrollBar.serialVersionUID): Likewise.
* javax/swing/JSeparator.java
(serialVersionUID): Likewise.
(AccessibleJSeparator.serialVersionUID): Likewise.
* javax/swing/JSlider.java: Fixed javadocs.
(AccessibleJSlider.serialVersionUID): New member variable.
* javax/swing/JSplitPane.java: Added copyright statement.
(serialVersionUID): New member variable.
(AccessibleJSplitPane.serialVersionUID): Likewise.
* javax/swing/JTabbedPane.java
(serialVersionUID): Likewise.
(AccessibleJTabbedPane.serialVersionUID): Likewise.
(ModelListener.serialVersionUID): Likewise.
(ModelListener.ModelListener): New constructor.
(SCROLL_TAB_LAYOUT): Made public final, fixed value.
(WRAP_TAB_LAYOUT): Likewise.
* javax/swing/JTable.java
(serialVersionUID): New member variable.
* javax/swing/JToggleButton.java
(serialVersionUID): Likewise.
(ToggleButtonModel): Made static.
(ToggleButtonModel.serialVersionUID): New member variable.
* javax/swing/JToolTip.java
(serialVersionUID): Likewise.
* javax/swing/JTree.java
(serialVersionUID): Likewise.
* javax/swing/JWindow.java
(serialVersionUID): Likewise.
* javax/swing/Timer.java
(serialVersionUID): Likewise.
2004-06-06 Michael Koch <konqueror@gmx.de>
* javax/swing/SwingConstants.java
(NEXT): New constant.
(PREVIOUS): Likewise.
* javax/swing/UIManager.java
(LookAndFeel): Made public.
(LookAndFeel.getClassName): Likewise.
(LookAndFeel.getName): Likewise.
2004-06-02 Olga Rodimina <rodimina@redhat.com>
* javax/swing/JCheckBoxMenuItem.java:
Removed CVS tags.
* javax/swing/JMenu.java: Likewise.
* javax/swing/JMenuBar.java: Likewise.
* javax/swing/JMenuItem.java: Likewise.
* javax/swing/JPopupMenu.java: Likewise.
* javax/swing/JRadioButtonMenuItem.java: Likewise.
* javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java:Likewise.
* javax/swing/plaf/basic/BasicMenuBarUI.java: Likewise.
* javax/swing/plaf/basic/BasicMenuItemUI.java: Likewise.
* javax/swing/plaf/basic/BasicMenuUI.java: Likewise.
* javax/swing/plaf/basic/BasicPopupMenuUI.java: Likewise.
* javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java: Likewise.
2004-05-31 Olga Rodimina <rodimina@redhat.com>
* javax/swing/plaf/basic/BasicMenuUI.java:
(MouseEntered): Do not call getPath() from MenuSelectionManager.
Call getPath() from super class instead.
2004-05-31 David Jee <djee@redhat.com>
* java/awt/Container.java
(remove): Set component visibility to false after removing it.
2004-05-27 Thomas Fitzsimmons <fitzsim@redhat.com>
* java/awt/Component.java (getForeground): Return SystemColor if
parent is null.
(getBackground): Likewise.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
(item_highlighted): New function.
(connectSignals): Set item_highlighted as list's select
function.
* java/applet/Applet.java: Revert changes from 2004-04-29,
2004-03-15 and 2004-03-14.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (drawString):
Divide baseline y coordinate by PANGO_SCALE, not DPI conversion
factor.
* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java (create): Set
"Dialog" as the default font.
* gnu/java/awt/peer/gtk/GtkTextFieldPeer.java (create):
Likewise.
* java/awt/Component.java (getFont): Return "Dialog" font by
default.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.c:
Multiply size argument to pango_font_description_set_size by the
DPI conversion factor rather than by PANGO_SCALE.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c: Likewise.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c: Likewise.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c: Likewise.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c: Likewise.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c: Likewise.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c: Likewise.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c: Likewise.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c: Likewise.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c: Likewise.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (drawString):
Divide baseline y coordinate by DPI conversion factor rather
than by PANGO_SCALE.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
(area_prepared): Fix typo.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
(gtkSetFont): Move gtk_bin_get_child inside GDK critical region.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
(dpi_conversion_factor): New global variable.
(init_dpi_conversion_factor): New function to calculate and
track DPI conversion factor.
(dpi_changed_cb): New callback.
* jni/gtk-peer/gtkpeer.h (dpi_conversion_factor): Declare.
2004-05-27 David Jee <djee@redhat.com>
* gnu/java/awt/peer/gtk/GtkComponentPeer.java
(getGraphics): Return a new GdkGraphics instance.
* gnu/java/awt/peer/gtk/GtkContainerPeer.java
(getGraphics): Call super.getGraphics().
2004-05-26 Thomas Fitzsimmons <fitzsim@redhat.com>
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
(setNativeBounds): Clamp width and height values to >= 0.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
(find_fg_color_widget): Handle GtkOptionMenu specially.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
(pre_event_handler): Only post configure events to visible
top-level windows.
2004-05-26 David Jee <djee@redhat.com>
* java/awt/BorderLayout.java
(layoutContainer): Fix size calculations.
2004-05-26 Thomas Fitzsimmons <fitzsim@redhat.com>
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
(window_wm_protocols_filter): Remove function.
(create): Remove filter that removes WM_TAKE_FOCUS client
messages.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83324 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/jni')
15 files changed, 202 insertions, 79 deletions
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.c index a56e7d27d5b..34d557131ec 100644 --- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.c +++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.c @@ -136,7 +136,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkClasspathFontPeer_setFont pango_font_description_set_family (pfont->desc, family_name); (*env)->ReleaseStringUTFChars(env, family_name_str, family_name); - pango_font_description_set_size (pfont->desc, size * PANGO_SCALE); + pango_font_description_set_size (pfont->desc, size * dpi_conversion_factor); if (style & java_awt_font_BOLD) pango_font_description_set_weight (pfont->desc, PANGO_WEIGHT_BOLD); diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c index 6036db7c776..bb406c50c49 100644 --- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c +++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c @@ -47,7 +47,8 @@ exception statement from your version. */ #define NUM_METRICS 5 JNIEXPORT jintArray JNICALL Java_gnu_java_awt_peer_gtk_GdkFontMetrics_initState - (JNIEnv *env, jobject obj __attribute__((unused)), jstring fname, jint size) + (JNIEnv *env, jobject obj __attribute__((unused)), + jstring fname, jint style, jint size) { jintArray array; jint *metrics; @@ -64,21 +65,28 @@ JNIEXPORT jintArray JNICALL Java_gnu_java_awt_peer_gtk_GdkFontMetrics_initState gdk_threads_enter (); font_desc = pango_font_description_from_string (font_name); - pango_font_description_set_size (font_desc, size * PANGO_SCALE); + pango_font_description_set_size (font_desc, size * dpi_conversion_factor); + + if (style & AWT_STYLE_BOLD) + pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); + + if (style & AWT_STYLE_ITALIC) + pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE); context = gdk_pango_context_get(); pango_context_set_font_description (context, font_desc); - pango_metrics = pango_context_get_metrics (context, font_desc, NULL); + pango_metrics = pango_context_get_metrics (context, font_desc, + gtk_get_default_language ()); metrics[ASCENT] = - pango_font_metrics_get_ascent (pango_metrics) / PANGO_SCALE; + PANGO_PIXELS (pango_font_metrics_get_ascent (pango_metrics)); metrics[MAX_ASCENT] = metrics[ASCENT]; metrics[DESCENT] = - pango_font_metrics_get_descent (pango_metrics) / PANGO_SCALE; + PANGO_PIXELS (pango_font_metrics_get_descent (pango_metrics)); metrics[MAX_DESCENT] = metrics[DESCENT]; metrics[MAX_ADVANCE] = - pango_font_metrics_get_approximate_char_width (pango_metrics) / PANGO_SCALE; + PANGO_PIXELS (pango_font_metrics_get_approximate_char_width (pango_metrics)); pango_font_metrics_unref (pango_metrics); @@ -94,7 +102,7 @@ JNIEXPORT jintArray JNICALL Java_gnu_java_awt_peer_gtk_GdkFontMetrics_initState JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_GdkFontMetrics_stringWidth (JNIEnv *env, jobject obj __attribute__((unused)), - jstring fname, jint size, jstring str) + jstring fname, jint style, jint size, jstring str) { PangoFontDescription *font_desc; PangoContext *context; @@ -109,7 +117,13 @@ JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_GdkFontMetrics_stringWidth gdk_threads_enter (); font_desc = pango_font_description_from_string (font_name); - pango_font_description_set_size (font_desc, size * PANGO_SCALE); + pango_font_description_set_size (font_desc, size * dpi_conversion_factor); + + if (style & AWT_STYLE_BOLD) + pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); + + if (style & AWT_STYLE_ITALIC) + pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE); context = gdk_pango_context_get(); pango_context_set_font_description (context, font_desc); @@ -117,6 +131,7 @@ JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_GdkFontMetrics_stringWidth layout = pango_layout_new (context); pango_layout_set_text (layout, cstr, -1); + pango_layout_get_pixel_size (layout, &width, NULL); pango_font_description_free (font_desc); diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c index 9c370e936cc..864e465871b 100644 --- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c +++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c @@ -207,7 +207,8 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawString gdk_threads_enter (); font_desc = pango_font_description_from_string (font_name); - pango_font_description_set_size (font_desc, size * PANGO_SCALE); + + pango_font_description_set_size (font_desc, size * dpi_conversion_factor); if (style & AWT_STYLE_BOLD) pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); @@ -225,12 +226,15 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawString baseline_y = pango_layout_iter_get_baseline (iter); - gdk_draw_layout (g->drawable, g->gc, - x + g->x_offset, y + g->y_offset - (baseline_y / PANGO_SCALE), layout); + gdk_draw_layout (g->drawable, g->gc, + x + g->x_offset, + y + g->y_offset - PANGO_PIXELS (baseline_y), + layout); pango_font_description_free (font_desc); pango_layout_iter_free (iter); + gdk_flush (); gdk_threads_leave (); (*env)->ReleaseStringUTFChars (env, fname, font_name); @@ -248,6 +252,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawLine gdk_draw_line (g->drawable, g->gc, x + g->x_offset, y + g->y_offset, x2 + g->x_offset, y2 + g->y_offset); + gdk_flush (); gdk_threads_leave (); } @@ -259,8 +264,10 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_fillRect g = (struct graphics *) NSA_GET_PTR (env, obj); gdk_threads_enter (); + gdk_draw_rectangle (g->drawable, g->gc, TRUE, x + g->x_offset, y + g->y_offset, width, height); + gdk_flush (); gdk_threads_leave (); } @@ -274,6 +281,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawRect gdk_threads_enter (); gdk_draw_rectangle (g->drawable, g->gc, FALSE, x + g->x_offset, y + g->y_offset, width, height); + gdk_flush (); gdk_threads_leave (); } @@ -292,6 +300,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_copyArea (GdkWindow *)g->drawable, x + g->x_offset, y + g->y_offset, width, height); + gdk_flush (); gdk_threads_leave (); } @@ -311,6 +320,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_copyPixmap (GdkWindow *)g2->drawable, 0 + g2->x_offset, 0 + g2->y_offset, width, height); + gdk_flush (); gdk_threads_leave (); } @@ -340,6 +350,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect x + g->x_offset, y + g->y_offset, width, height); gdk_gc_set_foreground (g->gc, &(saved.foreground)); } + gdk_flush (); gdk_threads_leave (); } @@ -370,6 +381,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_setFGColor gdk_threads_enter (); gdk_color_alloc (g->cm, &color); gdk_gc_set_foreground (g->gc, &color); + gdk_threads_leave (); } @@ -385,6 +397,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawArc gdk_draw_arc (g->drawable, g->gc, FALSE, x + g->x_offset, y + g->y_offset, width, height, angle1 << 6, angle2 << 6); + gdk_flush (); gdk_threads_leave (); } @@ -428,6 +441,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawPolyline gdk_threads_enter (); gdk_draw_lines (g->drawable, g->gc, points, npoints); + gdk_flush (); gdk_threads_leave (); g_free (points); @@ -451,6 +465,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawPolygon gdk_threads_enter (); gdk_draw_lines (g->drawable, g->gc, points, npoints); + gdk_flush (); gdk_threads_leave (); g_free (points); @@ -468,6 +483,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_fillPolygon g->x_offset, g->y_offset); gdk_threads_enter (); gdk_draw_polygon (g->drawable, g->gc, TRUE, points, npoints); + gdk_flush (); gdk_threads_leave (); g_free (points); @@ -485,6 +501,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_fillArc gdk_draw_arc (g->drawable, g->gc, TRUE, x + g->x_offset, y + g->y_offset, width, height, angle1 << 6, angle2 << 6); + gdk_flush (); gdk_threads_leave (); } @@ -499,6 +516,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawOval gdk_draw_arc (g->drawable, g->gc, FALSE, x + g->x_offset, y + g->y_offset, width, height, 0, 23040); + gdk_flush (); gdk_threads_leave (); } @@ -513,8 +531,9 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_fillOval gdk_draw_arc (g->drawable, g->gc, TRUE, x + g->x_offset, y + g->y_offset, width, height, 0, 23040); + gdk_flush (); gdk_threads_leave (); -} +} JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_setClipRectangle (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height) diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c index 222c7cedef3..97e49625cb7 100644 --- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c +++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c @@ -72,7 +72,7 @@ area_prepared (GdkPixbufLoader *loader, return; width = gdk_pixbuf_get_width (pixbuf); - height = gdk_pixbuf_get_height (pixbuf), + height = gdk_pixbuf_get_height (pixbuf); gdk_threads_leave (); diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c index 9877a45fe58..d9647e9ba10 100644 --- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c +++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c @@ -130,7 +130,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkSetFont return; font_desc = pango_font_description_from_string (font_name); - pango_font_description_set_size (font_desc, size * PANGO_SCALE); + pango_font_description_set_size (font_desc, size * dpi_conversion_factor); if (style & AWT_STYLE_BOLD) pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c index b4654bb2e29..f5d7cfb89aa 100644 --- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c +++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c @@ -153,7 +153,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkSetFont gdk_threads_enter(); font_desc = pango_font_description_from_string (font_name); - pango_font_description_set_size (font_desc, size * PANGO_SCALE); + pango_font_description_set_size (font_desc, size * dpi_conversion_factor); if (style & AWT_STYLE_BOLD) pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c index 09711726cd6..6f070f68b74 100644 --- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c +++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c @@ -565,8 +565,10 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetDispatchKeyEvent return; } - if (n_keys > 1) - g_printerr ("warning: using hardware keycode from first keymap entry, though multiple entries were found\n"); + /* Note: if n_keys > 1 then there are multiple hardware keycodes + that translate to lookup_keyval. We arbitrarily choose the first + hardware keycode from the list returned by + gdk_keymap_get_entries_for_keyval. */ event->key.hardware_keycode = keymap_keys[0].keycode; event->key.group = keymap_keys[0].group; @@ -707,10 +709,14 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setNativeBoun gdk_threads_enter (); widget = GTK_WIDGET (ptr); + + /* We assume that -1 is a width or height and not a request for the + widget's natural size. */ + width = width < 0 ? 0 : width; + height = height < 0 ? 0 : height; + if (GTK_IS_VIEWPORT (widget->parent)) - { - gtk_widget_set_size_request (widget, width, height); - } + gtk_widget_set_size_request (widget, width, height); else { gtk_widget_set_size_request (widget, width, height); @@ -844,7 +850,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkSetFont gdk_threads_enter(); font_desc = pango_font_description_from_string (font_name); - pango_font_description_set_size (font_desc, size * PANGO_SCALE); + pango_font_description_set_size (font_desc, size * dpi_conversion_factor); if (style & AWT_STYLE_BOLD) pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); @@ -1111,12 +1117,23 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_addExposeFilt filterobj = GTK_OBJECT(layout); } + else if (GTK_IS_SCROLLED_WINDOW(ptr)) + { + // The event will go to the parent GtkLayout. + filterobj = GTK_OBJECT(GTK_WIDGET(ptr)->parent); + } else { filterobj = GTK_OBJECT(ptr); } - g_signal_handlers_block_by_func (filterobj, *pre_event_handler, *gref); + gulong hid = g_signal_handler_find(filterobj, + G_SIGNAL_MATCH_FUNC, + 0, 0, NULL, *pre_event_handler, NULL); + if (hid > 0) + { + g_signal_handler_block(filterobj, hid); + } g_signal_connect( filterobj, "event", G_CALLBACK(filter_expose_event_handler), *gref); @@ -1155,6 +1172,11 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_removeExposeF filterobj = GTK_OBJECT(layout); } + else if (GTK_IS_SCROLLED_WINDOW(ptr)) + { + // The event will go to the parent GtkLayout. + filterobj = GTK_OBJECT(GTK_WIDGET(ptr)->parent); + } else { filterobj = GTK_OBJECT(ptr); @@ -1162,7 +1184,13 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_removeExposeF g_signal_handlers_disconnect_by_func (filterobj, *filter_expose_event_handler, *gref); - g_signal_handlers_unblock_by_func (filterobj, *pre_event_handler, *gref); + gulong hid = g_signal_handler_find(filterobj, + G_SIGNAL_MATCH_FUNC, + 0, 0, NULL, *pre_event_handler, NULL); + if (hid > 0) + { + g_signal_handler_unblock(filterobj, hid); + } gdk_threads_leave (); } @@ -1240,7 +1268,9 @@ find_fg_color_widget (GtkWidget *widget) { GtkWidget *fg_color_widget; - if (GTK_IS_EVENT_BOX (widget) || GTK_IS_BUTTON (widget)) + if (GTK_IS_EVENT_BOX (widget) + || (GTK_IS_BUTTON (widget) + && !GTK_IS_OPTION_MENU (widget))) fg_color_widget = gtk_bin_get_child (GTK_BIN(widget)); else fg_color_widget = widget; diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c index b3858fb3970..8fb619e2563 100644 --- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c +++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c @@ -989,11 +989,9 @@ pre_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer) break; case GDK_CONFIGURE: { - /* GtkWidget *widget; - - gdk_window_get_user_data (event->any.window, (void **) &widget); */ - - if (widget && GTK_WIDGET_TOPLEVEL (widget)) + /* Only send configure events to visible top-level windows. */ + if (widget && GTK_WIDGET_TOPLEVEL (widget) + && GTK_WIDGET_VISIBLE (widget)) { /* Configure events are not posted to the AWT event queue, and as such, the gdk/gtk peer functions will diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c index c5848baa130..93d30cb6976 100644 --- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c +++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c @@ -54,7 +54,7 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_create str = (*env)->GetStringUTFChars (env, text, 0); gdk_threads_enter (); - + ebox = gtk_event_box_new (); ebox_container = GTK_CONTAINER (ebox); label = gtk_label_new (str); @@ -80,17 +80,17 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_gtkSetFont ptr = NSA_GET_PTR (env, obj); - label = gtk_bin_get_child (GTK_BIN(ptr)); + font_name = (*env)->GetStringUTFChars (env, name, NULL); - if (!label) - return; + gdk_threads_enter (); - font_name = (*env)->GetStringUTFChars (env, name, NULL); + label = gtk_bin_get_child (GTK_BIN (ptr)); - gdk_threads_enter(); + if (!label) + return; font_desc = pango_font_description_from_string (font_name); - pango_font_description_set_size (font_desc, size * PANGO_SCALE); + pango_font_description_set_size (font_desc, size * dpi_conversion_factor); if (style & AWT_STYLE_BOLD) pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); @@ -98,11 +98,11 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_gtkSetFont if (style & AWT_STYLE_ITALIC) pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE); - gtk_widget_modify_font (GTK_WIDGET(label), font_desc); + gtk_widget_modify_font (GTK_WIDGET (label), font_desc); pango_font_description_free (font_desc); - gdk_threads_leave(); + gdk_threads_leave (); (*env)->ReleaseStringUTFChars (env, name, font_name); } diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c index 9f8301bf7d5..7cefd8dad07 100644 --- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c +++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c @@ -44,6 +44,13 @@ enum N_COLUMNS }; +gboolean item_highlighted (GtkTreeSelection *selection, + GtkTreeModel *model, + GtkTreePath *path, + gboolean path_currently_selected, + jobject peer); + + #define TREE_VIEW_FROM_SW(obj) \ (GTK_TREE_VIEW (GTK_SCROLLED_WINDOW (obj)->container.child)) @@ -130,21 +137,28 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_connectSignals (JNIEnv *env, jobject obj) { void *ptr; - GtkTreeView *list; jobject *gref; - - gref = NSA_GET_GLOBAL_REF (env, obj); - g_assert (gref); + GtkTreeView *list; + GtkTreeSelection *selection; ptr = NSA_GET_PTR (env, obj); + gref = NSA_GET_GLOBAL_REF (env, obj); gdk_threads_enter (); + g_assert (gref); + gtk_widget_realize (GTK_WIDGET (ptr)); + list = TREE_VIEW_FROM_SW (ptr); + g_signal_connect (G_OBJECT (list), "event", G_CALLBACK (pre_event_handler), *gref); + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list)); + gtk_tree_selection_set_select_function (selection, item_highlighted, + *gref, NULL); + gdk_threads_leave (); } @@ -166,7 +180,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_gtkSetFont font_name = (*env)->GetStringUTFChars (env, name, NULL); font_desc = pango_font_description_from_string (font_name); - pango_font_description_set_size (font_desc, size * PANGO_SCALE); + pango_font_description_set_size (font_desc, size * dpi_conversion_factor); if (style & AWT_STYLE_BOLD) pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); @@ -484,3 +498,34 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_setMultipleMode gdk_threads_leave (); } + +gboolean +item_highlighted (GtkTreeSelection *selection __attribute__((unused)), + GtkTreeModel *model, + GtkTreePath *path, + gboolean path_currently_selected, + jobject peer) +{ + GtkTreeIter iter; + jint row; + gint *indices; + + if (gtk_tree_model_get_iter (model, &iter, path)) + { + indices = gtk_tree_path_get_indices (path); + row = indices ? indices[0] : -1; + + if (!path_currently_selected) + (*gdk_env)->CallVoidMethod (gdk_env, peer, + postListItemEventID, + row, + (jint) AWT_ITEM_SELECTED); + else + (*gdk_env)->CallVoidMethod (gdk_env, peer, + postListItemEventID, + row, + (jint) AWT_ITEM_DESELECTED); + } + + return TRUE; +} diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c index 0b4c6fee452..817bee75200 100644 --- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c +++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c @@ -69,6 +69,12 @@ JavaVM *gdk_vm; GtkWindowGroup *global_gtk_window_group; +double dpi_conversion_factor; + +static void init_dpi_conversion_factor (); +static void dpi_changed_cb (GtkSettings *settings, + GParamSpec *pspec); + /* * Call gtk_init. It is very important that this happen before any other * gtk calls. @@ -166,7 +172,7 @@ Java_gnu_java_awt_peer_gtk_GtkMainThread_gtkInit (JNIEnv *env, jclass clazz) "postMenuActionEvent", "()V"); postMouseEventID = (*env)->GetMethodID (env, gtkcomponentpeer, - "postMouseEvent", "(IJIIIIZ)V"); + "postMouseEvent", "(IJIIIIZ)V"); postConfigureEventID = (*env)->GetMethodID (env, gtkwindowpeer, "postConfigureEvent", "(IIII)V"); postWindowEventID = (*env)->GetMethodID (env, gtkwindowpeer, @@ -194,6 +200,8 @@ Java_gnu_java_awt_peer_gtk_GtkMainThread_gtkInit (JNIEnv *env, jclass clazz) "postTextEvent", "()V"); global_gtk_window_group = gtk_window_group_new (); + + init_dpi_conversion_factor (); } /* @@ -207,3 +215,36 @@ Java_gnu_java_awt_peer_gtk_GtkMainThread_gtkMain gtk_main (); gdk_threads_leave (); } + +/* This is a big hack, needed until this pango bug is resolved: + http://bugzilla.gnome.org/show_bug.cgi?id=119081. + See: http://www.geocrawler.com/archives/3/522/2003/8/0/10579352/ + for details. */ +static void +init_dpi_conversion_factor () +{ + GtkSettings *settings = gtk_settings_get_default (); + GObjectClass *klass; + + klass = G_OBJECT_CLASS (GTK_SETTINGS_GET_CLASS (settings)); + if (g_object_class_find_property (klass, "gtk-xft-dpi")) + { + int int_dpi; + g_object_get (settings, "gtk-xft-dpi", &int_dpi, NULL); + dpi_conversion_factor = PANGO_SCALE * 72.0 / (int_dpi / PANGO_SCALE); + g_signal_connect (settings, "notify::gtk-xft-dpi", + G_CALLBACK (dpi_changed_cb), NULL); + } + else + /* Approximate. */ + dpi_conversion_factor = PANGO_SCALE * 72.0 / 96.; +} + +static void +dpi_changed_cb (GtkSettings *settings, + GParamSpec *pspec) +{ + int int_dpi; + g_object_get (settings, "gtk-xft-dpi", &int_dpi, NULL); + dpi_conversion_factor = PANGO_SCALE * 72.0 / (int_dpi / PANGO_SCALE); +} diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c index f9baa296459..c9427d49dff 100644 --- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c +++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c @@ -54,6 +54,8 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create text = gtk_text_view_new (); gtk_widget_set_size_request (text, textview_width, textview_height); + gtk_text_view_set_cursor_visible(text, TRUE); + gtk_widget_show (text); sw = gtk_scrolled_window_new (NULL, NULL); @@ -156,7 +158,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkSetFont gdk_threads_enter(); font_desc = pango_font_description_from_string (font_name); - pango_font_description_set_size (font_desc, size * PANGO_SCALE); + pango_font_description_set_size (font_desc, size * dpi_conversion_factor); if (style & AWT_STYLE_BOLD) pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c index e2429bcd1d0..5bea49a3f3c 100644 --- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c +++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c @@ -150,7 +150,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkSetFont gdk_threads_enter(); font_desc = pango_font_description_from_string (font_name); - pango_font_description_set_size (font_desc, size * PANGO_SCALE); + pango_font_description_set_size (font_desc, size * dpi_conversion_factor); if (style & AWT_STYLE_BOLD) pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c index c696a3fa6a2..29ff203d4e9 100644 --- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c +++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c @@ -44,11 +44,9 @@ exception statement from your version. */ #include <gdk/gdkx.h> #include <X11/Xatom.h> -static int filter_added = 0; - -static GdkFilterReturn window_wm_protocols_filter (GdkXEvent *xev, - GdkEvent *event, - gpointer data); +/* FIXME: we're currently seeing the double-activation that occurs + with metacity and GTK. See + http://bugzilla.gnome.org/show_bug.cgi?id=140977 for details. */ static void window_get_frame_extents (GtkWidget *window, int *top, int *left, @@ -150,20 +148,6 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create insets[2] = bottom; insets[3] = right; - /* We must filter out WM_TAKE_FOCUS messages. Otherwise we get two - focus in events when a window becomes active and two focus out - events when a window becomes inactive. */ - if (!filter_added) - { - GdkAtom wm_protocols_atom = - gdk_x11_xatom_to_atom (gdk_x11_get_xatom_by_name ("WM_PROTOCOLS")); - - gdk_add_client_message_filter (wm_protocols_atom, - window_wm_protocols_filter, - NULL); - filter_added = 1; - } - gdk_threads_leave (); (*env)->ReleaseIntArrayElements (env, jinsets, insets, 0); @@ -824,16 +808,3 @@ window_property_changed_cb (GtkWidget *widget __attribute__((unused)), return FALSE; } - -static GdkFilterReturn -window_wm_protocols_filter (GdkXEvent *xev, - GdkEvent *event __attribute__((unused)), - gpointer data __attribute__((unused))) -{ - XEvent *xevent = (XEvent *)xev; - - if ((Atom) xevent->xclient.data.l[0] == gdk_x11_get_xatom_by_name ("WM_TAKE_FOCUS")) - return GDK_FILTER_REMOVE; - - return GDK_FILTER_CONTINUE; -} diff --git a/libjava/jni/gtk-peer/gtkpeer.h b/libjava/jni/gtk-peer/gtkpeer.h index a913986c1db..18c95102472 100644 --- a/libjava/jni/gtk-peer/gtkpeer.h +++ b/libjava/jni/gtk-peer/gtkpeer.h @@ -435,6 +435,8 @@ extern jclass gdkColor; extern jmethodID gdkColorID; extern JNIEnv *gdk_env; +extern double dpi_conversion_factor; + extern GtkWindowGroup *global_gtk_window_group; void awt_event_handler (GdkEvent *event); |

