Mouse clicks on shapes drawn on canvas

I'm having some trouble adding a mouseListener to a shape I've drawn on a canvas.
I'm drawing a circle using g.drawOval() and then filling it in with the g.fillOval().
The thing is I want the circle to be sensitive to mouse clicks on it, I'm trying to write the classic dots and boxes game, so I can draw a line from it to the
next circle (dot) clicked.
Unfortunately, the circle is not picking up on the mouseClicked event, I'm pretty sure my dotActions class works because I used it on another class which extends JLabel and it works fine, that is when the label is clicked the program exits, but when I add it to the Dots class it doesn't pick up on any mouse events.
Here is my code, any help would be appreciated, thanks.
public class Dots extends Canvas {
public Dots(gameBoard gb, Graphics g, int x, int y, int hspace, int vspace){
g.drawOval(x, y, 10, 10);
g.fillOval(x, y, 10, 10);
dotActions da = new dotActions(this);
addMouseListener(da);
public class dotActions implements MouseListener{
public void mouseClicked(MouseEvent e){
//this is a test to see if the mouse event is picked up
System.exit(0);
public void mouseEntered(MouseEvent e)
public void mouseExited(MouseEvent e)
public void mousePressed(MouseEvent e)
public void mouseReleased(MouseEvent e)
}

Create a shape and add the listener to that as well as drawing to the screen.
Or what I did was to save all the shapes and then test the mouse point to see if current mouse point was inside any. In my case I am using it to provide context sensitive help
MArk
* handle context sensitive tooltips - replaces default java
* routine with our own which is context sensitive
public String getToolTipText(MouseEvent e)
Point raw_p = e.getPoint();
//convert to our co-ords
Point p = new Point(screenToScaledCoordsX((int) raw_p.getX()),
screenToScaledCoordsY((int) raw_p.getY()));
String tip = null;
//check any tooltips to see if match found
if (number_of_tooltips > 0)
//check each object and get master tooltip text if inside rectangle if on
//same page - go through all as text objects added before titles which will then be picked up
for (int i = 0; i < number_of_tooltips; i++)
if ((tool_tip_page[i] == last_page_id) &&
(tool_tip_rectangle.contains(p)))
tip = tool_tip_text[i];
//return default or ours
return tip;

Similar Messages

  • Catching mouse click on an irrigular shape image

    Is it possible to catch the mouse click on an irrigular shape image on a JPanel? Can I simply attach a mouse listener to the image?

    Hi,
    you should use a mouseListener, and test the coordinates of the click in the mouseClicked() method, then you can use the inside() method of the Shape to see if the click occured in the shape.
    Hope this will help,
    Regards.

  • Capturing Mouse Click Event Outside a Canvas/Component

    Hello Guys
    I have a canvas based component and i want to capture a mouse click event outside that component.
    How is it possible?
    Thanks a lot

    Thanks a lot Morphic
    I solved it using focusout method from my component;s textinput but your method is also good and will help me in later stages.

  • How do I set my project to advance to next slide on mouse click vs just play?

    Captivate 6 on mac running OS 10.7.5 file format in question .htm (firefox)
    I'm brand new to Captivate 6 (never used it before) I have put together a mock presentation from scratch which has a few introductory slides then a quiz. When I publish it there is a "play" button which is NOT the behavior I want.
    I watched a training video from Lynda.com and the insstructor imported a PPT file, there was a dialog box which asked the how to advance slide, there was a drop down menu and one of two options was advance "on mouse click". This is the behavior I'm looking for.
    I've scoured the internet and forums etc to find a comparable option elsewhere in Captivate 6 when creating from scratch vs importing from PPT and cannot find one anywhere. I've also read that you can insert a click box object and that that would do what I'm looking for but that doesn't work either.
    Does any such option exist and if so where/ how do I get to it/ use it. Please see attachments below. First screen shot is the first slide I get which isn't the first slide either, what's up with that? Next one is simply to show how the project just "plays" instead of advancing slide by slide. Third is my publish dialog box. Bottom line I don't want a "play" button I want the user to mouse click next, next, next etc. How do I do this?
    Thank you for any help or suggestions!

    Maybe I understand something wrongly, but thought you also wanted to know how you can make slides advance on clicking the Next button instead of having it playing on automatically? And instead of using the playbar you want to have a Previous and Next button?
    The way imported PPT with advance on Mouse click works is because there is a click box added to each slide that pauses that slide at its end. The user has to click on the slide to advance.
    A click box is an 'interactive' object: this means that you can have it pausing the slide, that the user can interact with it and trigger an action like 'Go to Next Slide'.
    You added (from what I see on the last screenshot) another interactive object, but now I'm confused: the third screenshot has a Prev and Next arrow, I think those are shapes. You do not need to add a click box on top of them (what I see on the last screenshot), they can be converted themselves into buttons. I blogged a lot about those shape buttons. Anyway, both click box and shape button can pause the slide. This is the case by default for click boxes (at the end of their duration, their timeline), for shape buttons you have to tell them to pause in the Timing accordion. In your case I certainly would choose a shape button because they can be put on a master slide, or timed for the rest of the project whereas Click boxes need to be unique on each slide, you'l have a lot of copy/paste to do then. In the Action accordion, On Success you choose the action, I think in this case you want 'Go to Next Slide' for the Next 'thing'
    As for the first screenshot, Rod explained that you cannot get rid of the play button for pdf output, but you can have a poster image instead of the blank screen. There is a folder icon in Preferences, Project, Start and End when you deselect AuotPlay.
    Here is a link to an article where I explain shape buttons:
    http://lilybiri.posterous.com/why-i-like-shape-buttons-captivate-6
    There is an on-demand webinar as well on the Adobe site which I presented, only about shape buttons.
    Lilybiri

  • What is the recommended way to handle mouse click events for custom nodes that subclass Panes?

    Hi,
    I have created a custom node that is a StackPane containing a Label on top of a Polygon.
    import javafx.scene.control.Label;
    import javafx.scene.layout.StackPane;
    import javafx.scene.paint.Color;
    import javafx.scene.shape.Polygon;
    public class CustomHexagon extends StackPane {
        private Polygon hexagon;
        private Label overlayText;
        public CustomHexagon( String text, double... points ) {
            this.hexagon = new Polygon( points );
            this.overlayText = new Label( text );
            overlayText.setStyle( "-fx-font-weight: bold;" );
            hexagon.setStroke( Color.GREEN );
            hexagon.setStrokeWidth( 5.0 );
            hexagon.setFill( Color.WHITE );
            this.getChildren().addAll( hexagon, overlayText );
    // Lays out the node where it should be according to the points provided for the Polygon.
            this.setLayoutX( points[0] - getLayoutBounds().getMinX() );
            this.setLayoutY( points[1] - getLayoutBounds().getMinY() );
    // Show the border of the StackPane.
            this.setStyle( "-fx-border-color: black; -fx-border-width: 1; -fx-border-style: dashed;");
        public String getOverlayText() {
            return overlayText.getText();
    I want to display a tesselation of these custom hexagons. Because a CustomHexagon is a StackPane, not a Polygon, MouseClick events can be picked up when the mouse is clicked outside of the stroke of the hexagon but still within the StackPane (which takes up a rectangle larger than the hexagon). The following program demonstrates this.
    public class Main extends Application {
        @Override
        public void start(Stage primaryStage) {     
            Group root = new Group();
            CustomHexagon[] hexagons = {
                new CustomHexagon( "00", 10.0, 10.0, 30.0, 10.0, 40.0, 27.3205080756, 30.0, 44.6410161512, 10.0, 44.6410161512, 0.0, 27.3205080756 ),
                new CustomHexagon( "01", 70.0, 10.0, 90.0, 10.0, 100.0, 27.3205080756, 90.0, 44.6410161512, 70.0, 44.6410161512, 60.0, 27.3205080756 ),
                new CustomHexagon( "02", 130.0, 10.0, 150.0, 10.0, 160.0, 27.3205080756, 150.0, 44.6410161512, 130.0, 44.6410161512, 120.0, 27.3205080756 ),
                new CustomHexagon( "03", 190.0, 10.0, 210.0, 10.0, 220.0, 27.3205080756, 210.0, 44.6410161512, 190.0, 44.6410161512, 180.0, 27.3205080756 ),
                new CustomHexagon( "04", 250.0, 10.0, 270.0, 10.0, 280.0, 27.3205080756, 270.0, 44.6410161512, 250.0, 44.6410161512, 240.0, 27.3205080756 ),
                new CustomHexagon( "10", 40.0, 27.3205080756, 60.0, 27.3205080756, 70.0, 44.6410161512, 60.0, 61.961524226799995, 40.0, 61.961524226799995, 30.0, 44.6410161512 ),
                new CustomHexagon( "11", 100.0, 27.3205080756, 120.0, 27.3205080756, 130.0, 44.6410161512, 120.0, 61.961524226799995, 100.0, 61.961524226799995, 90.0, 44.6410161512 ),
                new CustomHexagon( "12", 160.0, 27.3205080756, 180.0, 27.3205080756, 190.0, 44.6410161512, 180.0, 61.961524226799995, 160.0, 61.961524226799995, 150.0, 44.6410161512 ),
                new CustomHexagon( "13", 220.0, 27.3205080756, 240.0, 27.3205080756, 250.0, 44.6410161512, 240.0, 61.961524226799995, 220.0, 61.961524226799995, 210.0, 44.6410161512 ),
                new CustomHexagon( "14", 280.0, 27.3205080756, 300.0, 27.3205080756, 310.0, 44.6410161512, 300.0, 61.961524226799995, 280.0, 61.961524226799995, 270.0, 44.6410161512 ),
                new CustomHexagon( "20", 10.0, 44.6410161512, 30.0, 44.6410161512, 40.0, 61.961524226799995, 30.0, 79.2820323024, 10.0, 79.2820323024, 0.0, 61.961524226799995 ),
                new CustomHexagon( "21", 70.0, 44.6410161512, 90.0, 44.6410161512, 100.0, 61.961524226799995, 90.0, 79.2820323024, 70.0, 79.2820323024, 60.0, 61.961524226799995 ),
                new CustomHexagon( "22", 130.0, 44.6410161512, 150.0, 44.6410161512, 160.0, 61.961524226799995, 150.0, 79.2820323024, 130.0, 79.2820323024, 120.0, 61.961524226799995 ),
                new CustomHexagon( "23", 190.0, 44.6410161512, 210.0, 44.6410161512, 220.0, 61.961524226799995, 210.0, 79.2820323024, 190.0, 79.2820323024, 180.0, 61.961524226799995 ),
                new CustomHexagon( "24", 250.0, 44.6410161512, 270.0, 44.6410161512, 280.0, 61.961524226799995, 270.0, 79.2820323024, 250.0, 79.2820323024, 240.0, 61.961524226799995 ),
                new CustomHexagon( "30", 40.0, 61.961524226799995, 60.0, 61.961524226799995, 70.0, 79.2820323024, 60.0, 96.602540378, 40.0, 96.602540378, 30.0, 79.2820323024 ),
                new CustomHexagon( "31", 100.0, 61.961524226799995, 120.0, 61.961524226799995, 130.0, 79.2820323024, 120.0, 96.602540378, 100.0, 96.602540378, 90.0, 79.2820323024 ),
                new CustomHexagon( "32", 160.0, 61.961524226799995, 180.0, 61.961524226799995, 190.0, 79.2820323024, 180.0, 96.602540378, 160.0, 96.602540378, 150.0, 79.2820323024 ),
                new CustomHexagon( "33", 220.0, 61.961524226799995, 240.0, 61.961524226799995, 250.0, 79.2820323024, 240.0, 96.602540378, 220.0, 96.602540378, 210.0, 79.2820323024 ),
                new CustomHexagon( "34", 280.0, 61.961524226799995, 300.0, 61.961524226799995, 310.0, 79.2820323024, 300.0, 96.602540378, 280.0, 96.602540378, 270.0, 79.2820323024 ),
                new CustomHexagon( "40", 10.0, 79.2820323024, 30.0, 79.2820323024, 40.0, 96.602540378, 30.0, 113.9230484536, 10.0, 113.9230484536, 0.0, 96.602540378 ),
                new CustomHexagon( "41", 70.0, 79.2820323024, 90.0, 79.2820323024, 100.0, 96.602540378, 90.0, 113.9230484536, 70.0, 113.9230484536, 60.0, 96.602540378 ),
                new CustomHexagon( "42", 130.0, 79.2820323024, 150.0, 79.2820323024, 160.0, 96.602540378, 150.0, 113.9230484536, 130.0, 113.9230484536, 120.0, 96.602540378 ),
                new CustomHexagon( "43", 190.0, 79.2820323024, 210.0, 79.2820323024, 220.0, 96.602540378, 210.0, 113.9230484536, 190.0, 113.9230484536, 180.0, 96.602540378 ),
                new CustomHexagon( "44", 250.0, 79.2820323024, 270.0, 79.2820323024, 280.0, 96.602540378, 270.0, 113.9230484536, 250.0, 113.9230484536, 240.0, 96.602540378 )
            EventHandler<MouseEvent> mouseClickedHandler = new EventHandler<MouseEvent>() {
                @Override
                public void handle(MouseEvent t) {
                    CustomHexagon h = (CustomHexagon) t.getSource();
                    System.out.println( h.getOverlayText() );
            for ( CustomHexagon hexagon : hexagons ) {
                hexagon.setOnMouseClicked( mouseClickedHandler );
            root.getChildren().addAll( hexagons );
            Scene scene = new Scene(root, 400, 400);
            primaryStage.setTitle("Example");
            primaryStage.setScene(scene);
            primaryStage.show();
        public static void main(String[] args) {
            launch(args);
    After running this program, when one clicks within the intersection of two StackPanes (borders shown by dashed lines), the target of the mouse click event will be the StackPane on top as determined by the order in which they were added to their parent.
    This is a problem because there is only a small "T" shaped area within each hexagon that when clicked will target that hexagon with an event, rather than adjacent nodes.
    I would appreciate any reccomendations to solve this problem.
    Thanks,
    James Giller

    Hello, this is an evergreen. Just call setPickOnBounds(false) on the CustomHexagon.
    An issue tracking this problem is open here: https://javafx-jira.kenai.com/browse/RT-17024

  • Event Handlers of a mouse click

    In the simplest way possible please tell me how to do an event handler for a mouse click.
    private int clickCounter = 0;
    private void MyCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    if (Device1RB.IsChecked == true)
    clickCounter++;
    return;
    else if (RemoveRB.IsChecked == true)
    clickCounter--;
    return;
    else
    return;
    private void Switch_class()
    switch (clickCounter)
    case 1:
    //code here
    break;
    case 2:
    //code here
    break;
    case 3:
    //code here
    break;
    case 4:
    //code here
    break;
    case 5:
    //code here
    break;
    default:
    //code here??
    break;
    This is what I have and I apparently need an event handler for the mouse click. Also if there is an easier way to do what I want then please point me in the right direction.

    I still can't figure out why its not working.
    private int clickCounter = 0;
    private void MyCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    if (Device1RB.IsChecked == true)
    clickCounter++;
    return;
    else if (RemoveRB.IsChecked == true)
    clickCounter--;
    return;
    else
    return;
    private void Switch_class()
    switch (clickCounter)
    case 1:
    pic_1.Visibility = System.Windows.Visibility.Visible;
    break;
    case 2:
    pic_2.Visibility = System.Windows.Visibility.Visible;
    break;
    case 3:
    pic_3.Visibility = System.Windows.Visibility.Visible;
    break;
    case 4:
    pic_4.Visibility = System.Windows.Visibility.Visible;
    break;
    case 5:
    pic_5.Visibility = System.Windows.Visibility.Visible;
    break;
    default:
    //code here??
    break;
    That's what I've got.
    <Canvas x:Name="MyCanvas" HorizontalAlignment="Left" Height="391" Margin="130,20,0,0" VerticalAlignment="Top" Width="520" MouseLeftButtonDown="MyCanvas_MouseLeftButtonDown" Background="Transparent">
    <Rectangle Fill="White" HorizontalAlignment="Left" Height="391" Stroke="Black" VerticalAlignment="Top" Width="520"/>
    <Image HorizontalAlignment="Left" Height="34" VerticalAlignment="Top" Width="100" Source="Power.png" Visibility="Visible"/>
    <Image x:Name="pic_1" Height="42" Canvas.Left="152" Canvas.Top="70" Width="44" Source="2box.png" Visibility="Hidden"/>
    <Image x:Name="pic_2" Height="42" Canvas.Left="152" Canvas.Top="70" Width="44" Source="2box.png" Visibility="Hidden"/>
    <Image x:Name="pic_3" Height="42" Canvas.Left="152" Canvas.Top="70" Width="44" Source="2box.png" Visibility="Hidden"/>
    <Image x:Name="pic_4" Height="42" Canvas.Left="152" Canvas.Top="70" Width="44" Source="2box.png" Visibility="Hidden"/>
    <Image x:Name="pic_5" Height="42" Canvas.Left="152" Canvas.Top="70" Width="44" Source="2box.png" Visibility="Hidden"/>
    </Canvas>
    This is the canvas...Is there something blatantly obvious that I'm missing?

  • Mouse clicking amd Dragging

    Hi, I have the following code so far, and when run in conjunction with other classes it creates a carousel feature.
    When you click and hold on the carousel and drag up or down, the carousel moves in the relevant direction.
    I am trying to change this click and drag, so instead when you click one of the polygons (which represent up and down arrows), the carousel moves up or down depending on which you click.
    Can anyone help with this?!
    Thanks very much!
    class ScheduleBarCanvas extends Canvas implements MouseListener,
    MouseMotionListener, ActionListener
    * CONSTANTS *
    /** Width of a slot, in pixels. */
    static final int SLOT_WIDTH = 2;
    /** Width of an entire day schedule bar, in pixels. */
    static final int BAR_WIDTH = Slot.SLOTS_PER_DAY * SLOT_WIDTH;
    /** Half of the height of a day schedule bar, in pixels. */
    static final int BAR_HALF_HEIGHT = 20;
    /** The width of an hour within a day schedule bar, in pixels. */
    static final double HOUR_WIDTH = BAR_WIDTH / 24;
    * The schedule day bars are represented as a rotatable 'wheel'. This value
    * defines the 'angle' allocated to a single day bar.
    private static final float DEGREES_PER_DAY_BAR = 10;
    * For convenience, this value represents the number of day bars that occupy
    * a 90-degree 'slice' of the schedule wheel.
    private static final int DAY_BARS_PER_90_DEGREES = (int) 9;
    * The maximum number of day bars that can be represented in the wheel.
    private static final int MAX_BARS = 9*2-1;
    * FIELDS *
    * Popup menu to use for right click menu. The right click menu allows users
    * to perform actions such as changing the climate for a selected period of
    * time.
    private final JPopupMenu rightClickMenu = new JPopupMenu();
    * Determines whether 'paste day schedule' is an available option in the
    * right click menu. 'Paste day schedule' should remain unavailable until
    * the user has copied a day schedule bar.
    private boolean allowPaste = false;
    * When the user has chosen to copy a day schedule, it will be stored here.
    private DaySchedule copiedDaySchedule;
    * A day schedule with the default period allocations.
    private final DaySchedule defaultDaySchedule;
    /** X coordinate of the left end of the schedule bars. */
    private int barLeftX;
    /** Y coordinate of centre of schedule bar display. */
    private int centreY;
    /** Width of canvas, pixels. */
    private int width;
    /** Height of canvas, pixels. */
    private int height;
    /** X coordinate of last mouse click. */
    private int lastMouseClickPositionX = 0;
    /** Y coordinate of last mouse click. */
    private int lastMouseClickPositionY = 0;
    /** X coordinate of last right mouse button click. */
    private int lastRightClickPositionX = 0;
    /** Y coordinate of last right mouse button click. */
    private int lastRightClickPositionY = 0;
    /** Start time of last selected period. */
    private Slot periodStartTime = new Slot(0);
    /** End time of last selected period. */
    private Slot periodEndTime = new Slot(0);
    /** Last-pressed mouse button. */
    private int pressedButton;
    * While clicking and dragging to modify the end time of a period, this
    * field stores the 'old' end time of the period.
    private int currentPeriodEnd;
    * While clicking and dragging to modify the end time of a period, this
    * field stores the width of the current period. At other times, this field
    * has the value 0.
    private int currentPeriodWidth = 0;
    * Rather than directly manipulating the window's canvas, a buffer is used.
    * All updates to the display are computed 'out of sight', by writing to
    * this buffer's Graphics object (see 'graphicsBuffer') and then copied to
    * the canvas in one go.
    private Image imageBuffer;
    private Image imageBuffer2;
    /** Graphics object buffer to use when updating the display. */
    private Graphics graphicsBuffer;
    private double animationSpeed = 0;
    private double simTimeInc;
    private double simTime = 0; // simulated time, HOURS from start
    /** Collection of days */
    private Schedule schedule;
    * The set of day schedule bars visible on screen at present. As the user
    * scrolls through different days, schedule bars will come in and out of
    * sight, and hence will enter and leave this array.
    private DayBar[] visibleScheduleBars;
    /** Stores the available schedulables */
    private List<Schedulable> palette;
    private int barZeroDay;
    /** Currently highlighted period - not currently used */
    private Period selection;
    /** Previously highlighted selection - not currently used */
    private Period oldSelection; // button 3 selections
    private Period dayDrag; // button 1 drag region
    private DaySchedule daySched; // schedule affected by drag
    * When clicking and dragging to change the duration of a Period, this value
    * is used to store the number of the slot being dragged.
    * If this is a new Period, and hence no prior boundary existed, this value
    * will be -1.
    private int draggedSlotBoundary;
    * When you right click on a Period, the system fills this value with the
    * number of the first slot in that Period. For instance, if 13:00 to 16:00
    * is set to 'away', and you right click at 14:40 (or any other slot inside
    * the 'away' Period), then this value will be set to the index of the slot
    * 13:00.
    private int firstSlotNumber;
    * When you right click on a Period, the system fills this value with the
    * number of the last slot in that Period. For instance, if 13:00 to 16:00
    * is set to 'away', and you right click at 14:40 (or any other slot inside
    * the 'away' Period), then this value will be set to the index of the slot
    * 16:00.
    private int lastSlotNumber;
    private DaySchedule selectedDaySchedule;
    private boolean createPeriods = true;
    * CONSTRUCTORS *
    * Setting various schedules that can be displayed
    * Initialises the display of the scheduler
    * Setting right click menu
    ScheduleBarCanvas()
    int delay = 0; // milliseconds
    int period = 40; // milliseconds
    final double updateFreq = 1000.0 / period; // H
    visibleScheduleBars = new DayBar[20];
    palette = new ArrayList<Schedulable>();
    palette.add(new Schedulable(new Color(50, 50, 220))); // away
    palette.add(new Schedulable(new Color(100, 180, 160))); // sleep
    palette.add(new Schedulable(new Color(150, 150, 120))); // busy
    palette.add(new Schedulable(new Color(200, 100, 20))); // relax
    defaultDaySchedule = new DaySchedule(palette);
    schedule = new Schedule(palette);
    Timer timer = new Timer();
    // Inner class construction for a java.util.Timer object with a
    // defined TimerTask to run processes. See the java.util library
    // in the Java API for details. Also refer to other java utility
    // assistance classes which may be useful to you in the future.
    timer.schedule(new TimerTask()
    public void run()
    simTimeInc = getAnimationSpeed() / (updateFreq * 200.0);
    if (simTimeInc > 0.0)
    { // Advance simulation time at
    simTime += simTimeInc; // current rate
    repaint(); // then update the display ASAP.
    }, delay, period); // schedule's init delay & repeat-call period
    JMenuItem menuItem1 = new JMenuItem(
    "Set climate to 'Away'", new ImageIcon("away.png")),
    menuItem2 = new JMenuItem(
    "Set climate to 'Sleeping'", new ImageIcon("sleep.png")),
    menuItem3 = new JMenuItem(
    "Set climate to 'Relaxing'", new ImageIcon("relax.png")),
    menuItem4 = new JMenuItem(
    "Set climate to 'Busy'", new ImageIcon("busy.png")),
    menuItem5 = new JMenuItem(
    "Reset day schedule", new ImageIcon("refresh.png")),
    menuItem6 = new JMenuItem(
    "Copy day schedule", new ImageIcon("copy.png"));
    menuItem1.addActionListener(this);
    menuItem2.addActionListener(this);
    menuItem3.addActionListener(this);
    menuItem4.addActionListener(this);
    menuItem5.addActionListener(this);
    menuItem6.addActionListener(this);
    rightClickMenu.add(menuItem2);
    rightClickMenu.add(menuItem4);
    rightClickMenu.add(menuItem1);
    rightClickMenu.add(menuItem3);
    rightClickMenu.add(menuItem5);
    rightClickMenu.add(menuItem6);
    addMouseListener(this);
    addMouseMotionListener(this);
    * GRAPHICS METHODS *
    * Updates the GUI.
    * @param g graphics object to draw to.
    public void update(Graphics g)
    // NB: repaint() above automatically calls update(Graphics g) ASAP.
    paint(g);
    * Updates the display.
    * @param g canvas to draw on.
    public void paint(Graphics g)
    float carouselRadius = 100; // Carousel radius in pixels
    float degreesPerPixel = (float) (57.29 / carouselRadius);
    if (currentPeriodWidth != 0)
    simTime += currentPeriodWidth * (degreesPerPixel / DEGREES_PER_DAY_BAR) * 24;
    currentPeriodEnd += currentPeriodWidth;
    currentPeriodWidth = 0;
    barZeroDay = (int) simTime / 24; // treat 1 sim sec as 1 hour
    int maxDayNo = barZeroDay + MAX_BARS;
    if (barZeroDay < 0 || maxDayNo >= Schedule.N_SCHEDULES)
    return; // invalid day number; do nothing
    Dimension dim = getSize();
    int maxX = dim.width - 1, maxY = dim.height - 1;
    barLeftX = maxX / 7;
    centreY = maxY / 2;
    if (width != dim.width || height != dim.height)
    width = dim.width;
    height = dim.height;
    imageBuffer = createImage(width, height);
    graphicsBuffer = imageBuffer.getGraphics();
    graphicsBuffer.clearRect(0, 0, width, height);
    graphicsBuffer.setColor(new Color(0, 0, 0));
    int hour = (int) simTime - barZeroDay * 24;
    float dayZeroOffsetAngle = (float) (((hour - 12) / 24.0) * DEGREES_PER_DAY_BAR);
    for (int barNo = 0; barNo <= MAX_BARS; barNo++)
    int dayNo = barZeroDay + barNo;
    int daysEarlier = DAY_BARS_PER_90_DEGREES - barNo;
    float dayAngle = daysEarlier * DEGREES_PER_DAY_BAR
    + dayZeroOffsetAngle;
    float z = carouselRadius * (float) Math.cos(0);
    float y = carouselRadius * (float) Math.sin(dayAngle / 57.3);
    float x = z / 20;
    DayBar dayBar = new DayBar(dayNo, schedule.getDaySchedule(dayNo),
    graphicsBuffer, barLeftX, centreY, x, y);
    visibleScheduleBars[barNo] = dayBar;
    for (int barNo = 0; barNo <= MAX_BARS; barNo++)
    visibleScheduleBars[barNo].paintBar(oldSelection, selection);
    g.drawImage(imageBuffer, 20, 0, null);
    g.setColor(Color.WHITE);
    g.drawRect(40,25,375,50);
    g.fillRect(40,25,375,50);
    g.drawRect(40,205,375,65);
    g.fillRect(40,205,375,65);
    Point bigArrowPoint1 = new Point(0,0);
    Point bigArrowPoint2 = new Point(0,0);
    Point bigArrowPoint3 = new Point(0,0);
    Point smallArrowPoint1 = new Point(0,0);
    Point smallArrowPoint2 = new Point(0,0);
    Point smallArrowPoint3 = new Point(0,0);
    bigArrowPoint1 = new Point(100,100); //top left
    bigArrowPoint2 = new Point(100,100); //middle right
    bigArrowPoint3 = new Point(100,100); //bottom left
    smallArrowPoint1 = new Point(100,100); //top left
    smallArrowPoint2 = new Point(100,100); //middle right
    smallArrowPoint3 = new Point(100,100); //bottom left
    Polygon bigArrow = new Polygon();
    bigArrow.addPoint(bigArrowPoint1.x+310,bigArrowPoint1.y-25);
    bigArrow.addPoint(bigArrowPoint2.x+320,bigArrowPoint2.y-25);
    bigArrow.addPoint(bigArrowPoint3.x+315,bigArrowPoint3.y-30);
    Polygon smallArrow = new Polygon();
    smallArrow.addPoint(smallArrowPoint1.x+310,smallArrowPoint1.y+105);
    smallArrow.addPoint(smallArrowPoint2.x+320,smallArrowPoint2.y+105);
    smallArrow.addPoint(smallArrowPoint3.x+315,smallArrowPoint3.y+110);
    g.setColor(Color.black);
    g.fillPolygon(bigArrow);
    g.drawPolygon(bigArrow);
    g.setColor(Color.black);
    g.fillPolygon(smallArrow);
    g.drawPolygon(smallArrow);
    addMouseListener(this);
    addMouseMotionListener(this);
    * Sets a new percentage value for the animation speed of the application.
    * @param animationSpeed desired animation speed.
    void setAnimationSpeed(double animationSpeed)
    this.animationSpeed = animationSpeed;
    * Returns the current speed of the animation, as a percentage.
    * @return the current speed of the animation, as a percentage.
    private double getAnimationSpeed()
    return animationSpeed;
    * Finds and returns a slot based upon the specified mouse position
    * coordinates.
    * @param x x coordinate of selection, relative to centre-left of schedule
    * bar display.
    * @param y y coordinate of selection, relative to centre-left of schedule
    * bar display.
    * @return a Slot value corresponding to the selected slot if available. If
    * no slot was selected, null is returned.
    private Slot findSlot(int x, int y)
    int barNumber = findDayBarNumber(x, y);
    if (barNumber == -1)
    return null;
    int foo = (x - (int) visibleScheduleBars[barNumber].getLeftAngleX());
    int bar = (barNumber * Slot.SLOTS_PER_DAY + foo / SLOT_WIDTH);
    return new Slot(bar + barZeroDay * Slot.SLOTS_PER_DAY);
    * Finds the day bar specified by the provided mouse coordinates, and then
    * returns its number.
    * @param x x coordinate of mouse position.
    * @param y y coordinate of mouse position.
    * @return the number of the day bar, or -1 if no day bar was found at the
    * specified mouse coordinates.
    private int findDayBarNumber(int x, int y)
    for (int barNo = MAX_BARS - 1; barNo >= 0; barNo--)
    DayBar dayBar = visibleScheduleBars[barNo];
    if (x >= dayBar.getLeftAngleX() && x <= dayBar.getBarRightAngleX()
    && y >= dayBar.getBarBottomAngleY()
    && y <= dayBar.getBarTopAngleY())
    return barNo;
    return -1;
    * EVENT HANDLER METHODS *
    * This event handler is unused.
    * @param evt ignored.
    public void mouseClicked(MouseEvent evt)
    * This event handler is unused.
    * @param evt ignored.
    public void mouseExited(MouseEvent evt)
    * This event handler is unused.
    * @param evt ignored.
    public void mouseEntered(MouseEvent evt)
    * This event handler is unused.
    * @param evt ignored.
    public void mouseMoved(MouseEvent evt)
    * Called when the mouse button is released.
    * 1. Displays the right click menu if the right mouse button was clicked 2.
    * Updates 'last click position' fields 3. Modifies end time of current
    * selection
    * @param evt mouse event information.
    public void mouseReleased(MouseEvent evt)
    if (evt.isPopupTrigger()) // was the menu requested?
    displayRightClickMenu(evt);
    // Update 'last click position' fields
    lastMouseClickPositionX = evt.getX();
    lastMouseClickPositionY = evt.getY();
    if (pressedButton == MouseEvent.BUTTON3)
    { // selecting
    int barPositionX = lastMouseClickPositionX - barLeftX;
    int barPositionY = centreY - lastMouseClickPositionY;
    periodEndTime = findSlot(barPositionX, barPositionY);
    selection.setEnd(periodEndTime);
    * Called when mouse button is pressed. Updates slot with schedulable.
    * @param evt mouse event information.
    public void mousePressed(MouseEvent evt)
    if (evt.isPopupTrigger()) // was the menu requested?
    displayRightClickMenu(evt);
    lastMouseClickPositionX = evt.getX();
    int barPositionX = lastMouseClickPositionX - barLeftX;
    lastMouseClickPositionY = evt.getY();
    int barPositionY = centreY - lastMouseClickPositionY;
    periodStartTime = findSlot(barPositionX, barPositionY);
    if (periodStartTime == null)
    return;
    if (periodStartTime.getDayNumber() < 0
    || periodStartTime.getDayNumber() >= Schedule.N_SCHEDULES)
    return; // boundary case.
    pressedButton = evt.getButton(); // 1=left, 2=mid or wheel 3= right
    if (pressedButton == MouseEvent.BUTTON1)
    { // dragging
    // but maybe creating new selection too so...
    oldSelection = selection;
    currentPeriodEnd = barPositionY;
    currentPeriodWidth = 0;
    dayDrag = new Period(periodStartTime, periodStartTime);
    int s = periodStartTime.getSlotNumber();
    if (!createPeriods)
    return;
    daySched = schedule.getDaySchedule(periodStartTime.getDayNumber());
    draggedSlotBoundary = daySched.findNearBoundary(s, 3);
    if (draggedSlotBoundary < 0)
    if (s < 0 || s >= Slot.SLOTS_PER_DAY)
    return; // boundary case
    // Not near a boundary, so create seed slot for new
    // period
    if (daySched.getSlot(s) == palette.get(0))
    daySched.setSlot(s, palette.get(1));
    else
    daySched.setSlot(s, palette.get(0));
    draggedSlotBoundary = s;
    } else
    Schedulable SS = daySched.getSlot(draggedSlotBoundary);
    if (draggedSlotBoundary < s)
    daySched.insert(SS, draggedSlotBoundary, s);
    else
    daySched.insert(SS, s, draggedSlotBoundary);
    else if (pressedButton == MouseEvent.BUTTON3)
    { // selecting
    oldSelection = selection;
    periodStartTime = findSlot(barPositionX, barPositionY);
    selection = new Period(periodStartTime, periodStartTime);
    * Called when the mouse is moved while a button on it is held down.
    * Changes the end time of the selected Period.
    * @param evt information about the current mouse cursor state, e.g.
    * position.
    public void mouseDragged(MouseEvent evt)
    lastMouseClickPositionX = evt.getX();
    int barPositionX = lastMouseClickPositionX - barLeftX;
    lastMouseClickPositionY = evt.getY();
    int barPositionY = centreY - lastMouseClickPositionY;
    if (pressedButton == MouseEvent.BUTTON1)
    { // dragging
    Slot selectedSlot = findSlot(barPositionX, barPositionY);
    currentPeriodWidth = barPositionY - currentPeriodEnd;
    if (draggedSlotBoundary < 0 || selectedSlot == null)
    return; // out of bounds
    if (!createPeriods)
    return;
    for (int s = draggedSlotBoundary + 1; s < selectedSlot.getSlotNumber(); s++)
    daySched.setSlot(s, daySched.getSlot(draggedSlotBoundary));
    dayDrag.setEnd(selectedSlot); // or could use Selection instead
    if (pressedButton == MouseEvent.BUTTON3)
    { // selecting
    Slot selectedSlot = findSlot(barPositionX, barPositionY);
    selection.setEnd(selectedSlot);
    * Displays the right click menu.
    * @param evt information about the current mouse cursor state, e.g.
    * position.
    private void displayRightClickMenu(MouseEvent evt)
    // Calculate positions of mouse click relative to centre-left of
    // schedule bars display.
    lastRightClickPositionX = evt.getX() - barLeftX;
    lastRightClickPositionY = centreY - evt.getY();
    // identify bar to modify
    DayBar db = null;
    for (int barNo = MAX_BARS - 1; barNo >= 0; barNo--)
    DayBar currentBar = visibleScheduleBars[barNo];
    if (lastRightClickPositionX >= currentBar.getLeftAngleX()
    && lastRightClickPositionX <= currentBar.getBarRightAngleX()
    && lastRightClickPositionY >= currentBar.getBarBottomAngleY()
    && lastRightClickPositionY <= currentBar.getBarTopAngleY())
    db = currentBar;
    break;
    if (db == null)
    return;
    // identify 'selected' section/setting
    Slot t = findSlot(lastRightClickPositionX, lastRightClickPositionY);
    int slot = t.getSlotNumber();
    if (slot < 0)
    return; // out of bounds
    // find out colour of selected section
    selectedDaySchedule = db.getDaySchedule();
    Color colour = selectedDaySchedule.getSlot(slot).colour;
    // go left/back; find earliest section with this colour
    firstSlotNumber = slot;
    while (true)
    Color currentSlotColour = selectedDaySchedule
    .getSlot(firstSlotNumber).colour;
    if (!currentSlotColour.equals(colour))
    firstSlotNumber++;
    break;
    if (firstSlotNumber > 0) // lower boundary case
    firstSlotNumber--;
    else
    break;
    // go right/forwards; find latest section with this colour
    lastSlotNumber = slot;
    while (true)
    Color currentSlotColour = selectedDaySchedule
    .getSlot(lastSlotNumber).colour;
    if (!currentSlotColour.equals(colour))
    break;
    if (lastSlotNumber < Slot.SLOTS_PER_DAY - 1) // upper bound case
    lastSlotNumber++;
    else
    break;
    rightClickMenu.show(evt.getComponent(), evt.getX(), evt.getY());
    * Called when the user selects an item from the right click menu. Changes
    * the Schedulable for the selected Period to the requested value.
    * @param evt an ActionEvent, providing information about the command that
    * was selected from the menu.
    public void actionPerformed(ActionEvent evt)
    String command = evt.getActionCommand();
    if (command.equals("Copy day schedule"))
    if (!allowPaste) {
    * If the user copies a day schedule, we must enable
    * the paste option in the menu.
    JMenuItem menuItem7 = new JMenuItem("Paste day schedule",
    new ImageIcon("paste.png"));
    menuItem7.addActionListener(this);
    rightClickMenu.add(menuItem7);
    allowPaste = true; // only do this once
    int barNo = findDayBarNumber(
    lastRightClickPositionX, lastRightClickPositionY);
    DayBar db = visibleScheduleBars[barNo];
    /* It's important that we copy the day schedule by value, not by
    * reference. If we just copy a reference, then if we 'copy' a bar,
    * changing the source bar after the copy operation will change what
    * is ultimately 'pasted'.
    copiedDaySchedule = db.getDaySchedule().clone();
    else if (command.equals("Paste day schedule"))
    int barNo = findDayBarNumber(
    lastRightClickPositionX, lastRightClickPositionY);
    DayBar db = visibleScheduleBars[barNo];
    db.getDaySchedule().insert(
    copiedDaySchedule, 0, Slot.SLOTS_PER_DAY-1);
    else if (command.equals("Reset day schedule"))
    int barNo = findDayBarNumber(
    lastRightClickPositionX, lastRightClickPositionY);
    DayBar db = visibleScheduleBars[barNo];
    db.getDaySchedule().insert(
    defaultDaySchedule, 0, Slot.SLOTS_PER_DAY-1);
    else
    * Identifies which new Schedulable was requested. This Schedulable
    * will replace the selected Period's Schedulable value.
    * For instance, if "Away" was selected from the menu, then we must
    * fetch the "Away" Schedulable.
    Schedulable schedulable;
    if (evt.getActionCommand().equals("Set climate to 'Away'"))
    schedulable = palette.get(2); // the 'away' Schedulable
    else if (evt.getActionCommand().equals("Set climate to 'Sleeping'"))
    schedulable = palette.get(0); // the 'sleeping' Schedulable
    else if (evt.getActionCommand().equals("Set climate to 'Busy'"))
    schedulable = palette.get(1);
    else if (evt.getActionCommand().equals("Set climate to 'Relaxing'"))
    schedulable = palette.get(3);
    else
    // Should never occur
    throw new Error("Unrecognised command.");
    // Now fill the selected Period with the requested Schedulable.
    selectedDaySchedule.insert(
    schedulable, firstSlotNumber, lastSlotNumber);
    * User is able to edit schedule when boolean is set to true
    * @param createPeriods sets state of interaction with day schedules
    void setCreatePeriods(boolean createPeriods) {
    this.createPeriods = createPeriods;
    }

    Here is the Apple document covering Magic Mouse faults.  Symptom number 6 seems the one to check out.  Is this a longstanding or a recently developed fault?
    And, of course, is it still under the 12 month warranty.
    One thing to pay particular attention to is the proximity of electronic items such as cradles for phones and the like which if active, can interfere with the signal.
    Troubleshooting wireless mouse and keyboard issues

  • :system.cursor_block value does not change when mouse click

    Form created with Forms version 6.0.8.8.0. Consists of a control block that has the toolbar buttons, a filter control block that contains item, and a data block. The filter control block and data block are on a tabbed canvas. There are 3 tabs with corresponding filter control block and data block on each.After the data block is queried, code sets the navigation to the control block with the go_item built-in. The user would use a mouse click on the filter control block on one of the tabs to activate an LOV, code is in a generic when-mouse-click trigger that will determine the item focus with the value in the system variable :system.cursor_block. Works for the first tab. Does not work for 2nd or 3rd tab. On-error trigger does not capture any error. Values for :system.cursor_block for tab 1 show that value before mouse click is 'control.detail' and after mouse click is 'filter.a'. For tabs 2 and 3 the value before mouse lick is 'control.detail' and after mouse click is 'control.detail' instead of 'fiter.b' or 'filter.c'. Verified that the 3 filter blocks are identical. Can anyone shed some light on this anomoly? I have been looking for this solution (many different iterations and changes to trap it) for too long.

    :System.Cursor_Block reports the name of a block, NOT a BlockName.ItemName.
    Use :System.Trigger_Item with your mouse click, or :System.Cursor_Item.

  • Detecting mouse click on a line

    I'm learning making GUI apps in Java.
    Here is my problem. Suppose I draw a line on a JPanel. If I want to find out if the line is clicked or not, what is the best way to do it?
    I did some research, looked at API. If I suppose my line is Line2D, then since its a line it doesn't have an area, so its contains method always returns false (..from API). So i dig around some more and came up with the solution of getting the shape from the stroke and calling its contains method.
    This is a code for what i mean..
    private Line2D.Double testLine;
    //mouse clicked event
    public void mouseClicked(MouseEvent e) {
            int x = e.getX();
            int y = e.getY();
            BasicStroke stroke = new BasicStroke(4);
            Shape testShape = stroke.createStrokedShape(testLine);
            if(testShape.contains(x,y)){
                System.out.println("this will be printed if clicked on line");
        }Well, the above solution works fine.
    Is it the right way of doing it or is there a better way around for this?
    Any help will be appreciated.
    Thanks.

    When trying to test if a line was pressed I usually test if the distance between the mouse coordinates and the line is smaller than some constant (usually 5 pixels).
    For this you have to write your own code to calculate the distance between a point and a line.

  • Get the tab page that the mouse clicked on using PLSQL

    Another canvas related question ...
    Is it possible to detect the tab page that the mouse clicked on
    from within a WHEN-MOUSE-DOUBLECLICKED trigger,
    SYSTEM.MOUSE_CANVAS returns the name of the tab canvas.
    However, I need the name of the tab page within the tab canvas
    thanks
    Scott

    resolved - thanks
    resolution notes follow:
    ========================
    I forgot to mention that I dont know the type of canvas at runtime,
    so the code needs to work for tab and non-tab canvases
    Unfortunately, calling TOPMOST_TAB_PAGE for a non-tab canvas results in an
    error that can only be suppressed using an ON-ERROR trigger
    (SYSTEM.MESSAGE_LEVEL wont supress it, nor will EXCEPTION)
    anyway, I resolved this via another related post that I raised today.
    "Determining canvas type using PLSQL"
    thanks anyway.

  • Why does the ALT key disable mouse clicks on some machines?

    I have a drawing program, the main Window of which extends JFrame and contains a Canvas, which extends JPanel. The Canvas has a MouseAdapter, KeyAdapter and JMenuBar. It also has a Tools palette, which extends JDialog and has Buttons, which extend JToggleButtons.
    One button is called Zoom. After pressing this button, you can Zoom In and Zoom Out by clicking the mouse on a point of the illustration. It differs from pressing Ctrl Plus and Ctrl Minus, because the point where you click is kept in place, and only all the other points move.
    Zooming In is done by clicking the mouse and Zooming Out is done by pressing the ALT key and clicking the mouse. The Zooming In works on all computers, but for some strange reason, the Zooming Out doesn't work on all computers. The computer where it doesn't work, after pressing the ALT key and clicking the mouse, it does not recognize the mouse click, and never reaches the mousePressed method in my debugger.
    The computer where it doesn't work has the Windows XP Professional operating system. But some computers where it does work have the same operating system. The problem also does not depend on the keyboard or mouse, because I tried a different keyboard and mouse, and it still didn't work.
    I wonder if the reason why it doesn't work on some computers has to do with that the ALT key is also used differently (which might depend on the operating system)? Pressing the ALT key and clicking the mouse Zooms In a picture by keeping the point in place and only moving all the other points
    I do not want to use a different key, since one release of my program is a plugin for Photoshop, and Photoshop also uses the ALT key to achieve the same thing.
    Thanks for checking on this! I will appreciate your help!

    Ok, I did apply KeyBindings. Since the AnanyaCurves class extends JFrame, I couldn't apply KeyBindings there, but I could apply KeyBindings to my CurveCanvas class, which extends JPanel, which extends JComponent. However I still have my first two problems:
    1) After pressing the ALT key, clicking the mouse doesn't get recognized. You never reach the mousePressed method, where it's supposed to exit the program.
    2) After opening a menu, such as the Nothing menu by pressing ALT and N, pressing a key which is not an accelerator key of a menu doesn't get recognized, such as pressing the E key. You never reach the actionPerformed method of the exitF action, where it's supposed to exit the program.
    Here is my SSCCE with the KeyBindings:
    import java.awt.*;
    import java.awt.event.*;
    import java.lang.*;
    import java.lang.reflect.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.plaf.*;
    public class AnanyaCurves extends JFrame
      CurveCanvas canvas;
      JMenuBar menuBar;
      Command quitCmd;
      JMenu fileMenu, nothingMenu;
      JMenuItem quitItem, nothingItem;
      boolean alt;
      public AnanyaCurves(Dimension windowSize)
        Font boldFont = new Font("Verdana", Font.BOLD, 12);
        Font plainFont = new Font("Verdana", Font.PLAIN, 12);
        Object top;
        Basics.ananyaCurves = this;
        alt = false;
        try
          UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
          SwingUtilities.updateComponentTreeUI(this);
        catch(Exception e)
        UIManager.put("MenuItem.acceleratorFont", new FontUIResource(UIManager.getFont("MenuItem.acceleratorFont").decode("Verdana-PLAIN-12")));
        Basics.ananyaCurves = this;
        enableEvents(AWTEvent.WINDOW_EVENT_MASK);
        setTitle("Ananya Curves");
        Dimension docSize = new Dimension(274, 121);
        canvas = new CurveCanvas(docSize);   
        menuBar = new JMenuBar();
        setJMenuBar(menuBar);
        fileMenu = new JMenu("File");
        fileMenu.setMnemonic('F');
        fileMenu.setFont(boldFont);
        quitCmd = new Command("quit", "ctrl Q");
        quitCmd.putValue(Action.NAME, "Quit");
        quitItem = new JMenuItem(quitCmd);
        quitItem.setFont(plainFont);
        fileMenu.add(quitItem);
        menuBar.add(fileMenu);
        //fileMenu.setVisible(false);
        /*JMenuBar hiddenMenuBar = new JMenuBar();
        hiddenMenuBar.add(fileMenu);
        getContentPane().add(hiddenMenuBar, BorderLayout.CENTER);
        getContentPane().add(new JPanel(), BorderLayout.CENTER);*/
        nothingMenu = new JMenu("Nothing");
        nothingMenu.setMnemonic('N');
        nothingMenu.setFont(boldFont);
        nothingItem = new JMenuItem("NoAction");
        nothingItem.setFont(plainFont);
        nothingMenu.add(nothingItem);
        menuBar.add(nothingMenu);
        addMouseListener(new MouseAdaption());
        addKeyListener(new KeyAdaption());
      public static void main(String[] args)
        Dimension windowSize = new Dimension(300, 200);
        AnanyaCurves ananyaCurves = new AnanyaCurves(windowSize);
        ananyaCurves.pack();
        ananyaCurves.setBounds(0, 0, windowSize.width, windowSize.height);
        ananyaCurves.setVisible(true);
        ananyaCurves.requestFocus();
      public void exit()
        this.dispose();
        System.exit(0);
      class MouseAdaption extends MouseAdapter
        public void mousePressed(MouseEvent e)
          if (AnanyaCurves.this.alt == true)
            AnanyaCurves.this.exit();
      class KeyAdaption extends KeyAdapter
        public void keyPressed(KeyEvent event)
          /*int keyCode = event.getKeyCode();
          if (keyCode == KeyEvent.VK_ALT)
            AnanyaCurves.this.alt = true;
          else if (keyCode == KeyEvent.VK_E)
            AnanyaCurves.this.exit();
        public void keyReleased(KeyEvent event)
          AnanyaCurves.this.alt = false;
    class Basics extends java.lang.Object
      public static AnanyaCurves ananyaCurves;
      public Basics()
    class Command extends AbstractAction
      String name; // the command name (not the menu item string)
      String accelerator;
      public Command(String name, String accelerator)
        super();
        this.name = name;
        if (accelerator != null && !accelerator.equals(""))
          this.accelerator = accelerator;
          KeyStroke k = KeyStroke.getKeyStroke(accelerator);
          putValue(Action.ACCELERATOR_KEY, k);
      public void quit()
        Basics.ananyaCurves.dispose();
        System.exit(0);
      public void actionPerformed(ActionEvent actionEvent)
        try
          Method f = getClass().getMethod(this.name, (Class[])null);
          f.invoke(this, (Object[])null);
        catch (NoSuchMethodException e)
        catch (InvocationTargetException e)
        catch (IllegalAccessException e)
    class CurveCanvas extends JPanel
      public CurveCanvas(Dimension docSize)
        super();
        Action altF = new AbstractAction()
          public void actionPerformed(ActionEvent e)
            Basics.ananyaCurves.alt = true;
        Action exitF = new AbstractAction()
          public void actionPerformed(ActionEvent e)
            Basics.ananyaCurves.exit();
        this.getInputMap(WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ALT"), "alt");
        this.getActionMap().put("alt", altF);
        this.getInputMap(WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("E"), "exit");
        this.getActionMap().put("exit", exitF);
    In the getInputMap method I was trying to use the condition WHEN_IN_FOCUSED_WINDOW, hoping that the bound key would be recognized, but it didn't work. And, by the way, I still used the KeyAdapter so that the alt attribute of AnanyaCurves can be set to false when the ALT key is released.
    I will appreciate your help very much! Thanks for your time!

  • Using Firefox 3.6 after a few mouse click/ keyboard input the firefox window is no more active, mouse click and keyboard input is inactive ; then I click on the taskbar and the keyboard is active again during a few click then it stops again etc.

    Using Firefox 3.6 after a few mouse click/ keyboard input the firefox window is no more active, mouse click and keyboard input is inactive ;
    to solve it I click on the taskbar and the keyboard is active again during a few click then it does not work any more and I click again on the task bar etc.
    after several repetitions, I have to call the task manager alt+del+ctrl, then come back to the firefox window to be able to use keyboard and mouse again

    Attaching the picture for the tab shape I want...

  • Passing through a mouse click

    I have a canvas with backgroundAlpha=0 over some other components, so that I can use rollOver and rollOut to trigger some events. However, i can't get the mouse to work with the components underneath the tranparent canvas. Is there a way to pass the mouse click event on to the components underneath the canvas?
    thanks,
    jq

    Thanks very much for your answer.
    In my case, I have a List which already has click actions assigned to its items. Basically, I want the list to disappear when the mouse is out of it, an reappear when the mouse is over it. For this purpose, I overlayed it with a transparent canvas, which responds to rollOver and rollOut. But then the list no longer responds to the mouse clicks. Is there a way to get the overlayed convas to pass the mouse click to the list so it responds normally again?
    jq

  • Weird mouse click behaviour

    Hi,
    I don't really know how to explain this. Somethimes, in some situations, my mouse clicks registers twice. Like sometimes I can't minimize an applicatireaon by clicking on the taskbar entry, because the click registers twice and the application minimizes but right after that restores too. It happens with both right and left mouse buttons. Sometimes can't bring up the rigth click menu in thunar, because it appears and right after that disappears, but if I rigth click elsewhere,in an another application, it works. So it happens only with certain elements of the gui, it isn't that everywhere I click, it counts twice, only with a specific menu, or with the taskbar, or with an icon on my desktop - but can drive me crazy.
    With equinox gtk engine it happens more often than with clearlooks engine
    I observed this behavior with Linux Mint Debian Edition and with openSUSE with certain themes, and now with Arch. I don't think it is a hardware error, because it appears only with some elements of the desktop, not everywhere everytime, I don't think my mouse knows that I want to minimize firefox and decides to mailfunction just to drive me crazy
    Does anybody else observed this? Has anybody an idea how can I fix it?
    I use Xfce, but when I tried LMDE, I used Gnome, my apps are up to date, the mouse is a A4tech G6.

    I have the same behavior along with an additional clause that sometimes mouse clicks will not register at all.
    I am using i3...so I do not think its DE/WM specific. Been looking at xev...but it doesn't show up anything.
    Here's my Xorg.0.log, no errors as such, some information about using evdev for the mouse at the very end.
    [ 22.077]
    X.Org X Server 1.10.2
    Release Date: 2011-05-28
    [ 22.077] X Protocol Version 11, Revision 0
    [ 22.077] Build Operating System: Linux 2.6.38-ARCH x86_64
    [ 22.077] Current Operating System: Linux wolfdale 2.6.39-ARCH #1 SMP PREEMPT Mon Jun 27 21:26:22 CEST 2011 x86_64
    [ 22.077] Kernel command line: root=/dev/disk/by-uuid/2531f3c1-e139-48c0-bbda-a6650b58eb0c ro
    [ 22.077] Build Date: 30 May 2011 08:18:15AM
    [ 22.077]
    [ 22.077] Current version of pixman: 0.22.0
    [ 22.077] Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
    [ 22.077] Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    [ 22.077] (==) Log file: "/var/log/Xorg.0.log", Time: Wed Jun 29 19:50:11 2011
    [ 22.099] (==) Using config directory: "/etc/X11/xorg.conf.d"
    [ 22.109] (==) No Layout section. Using the first Screen section.
    [ 22.109] (==) No screen section available. Using defaults.
    [ 22.109] (**) |-->Screen "Default Screen Section" (0)
    [ 22.110] (**) | |-->Monitor "<default monitor>"
    [ 22.110] (==) No monitor specified for screen "Default Screen Section".
    Using a default monitor configuration.
    [ 22.110] (==) Automatically adding devices
    [ 22.110] (==) Automatically enabling devices
    [ 22.130] (WW) The directory "/usr/share/fonts/OTF/" does not exist.
    [ 22.130] Entry deleted from font path.
    [ 22.175] (==) FontPath set to:
    /usr/share/fonts/misc/,
    /usr/share/fonts/TTF/,
    /usr/share/fonts/Type1/,
    /usr/share/fonts/100dpi/,
    /usr/share/fonts/75dpi/
    [ 22.175] (==) ModulePath set to "/usr/lib/xorg/modules"
    [ 22.175] (II) The server relies on udev to provide the list of input devices.
    If no devices become available, reconfigure udev or disable AutoAddDevices.
    [ 22.175] (II) Loader magic: 0x7d3440
    [ 22.175] (II) Module ABI versions:
    [ 22.175] X.Org ANSI C Emulation: 0.4
    [ 22.175] X.Org Video Driver: 10.0
    [ 22.175] X.Org XInput driver : 12.2
    [ 22.175] X.Org Server Extension : 5.0
    [ 22.175] (--) PCI:*(0:1:0:0) 1002:94c1:1028:0d02 rev 0, Mem @ 0xd0000000/268435456, 0xfe9f0000/65536, I/O @ 0x0000dc00/256, BIOS @ 0x????????/131072
    [ 22.175] (II) Open ACPI successful (/var/run/acpid.socket)
    [ 22.175] (II) LoadModule: "extmod"
    [ 22.205] (II) Loading /usr/lib/xorg/modules/extensions/libextmod.so
    [ 22.217] (II) Module extmod: vendor="X.Org Foundation"
    [ 22.217] compiled for 1.10.2, module version = 1.0.0
    [ 22.217] Module class: X.Org Server Extension
    [ 22.217] ABI class: X.Org Server Extension, version 5.0
    [ 22.217] (II) Loading extension MIT-SCREEN-SAVER
    [ 22.217] (II) Loading extension XFree86-VidModeExtension
    [ 22.217] (II) Loading extension XFree86-DGA
    [ 22.217] (II) Loading extension DPMS
    [ 22.217] (II) Loading extension XVideo
    [ 22.217] (II) Loading extension XVideo-MotionCompensation
    [ 22.217] (II) Loading extension X-Resource
    [ 22.217] (II) LoadModule: "dbe"
    [ 22.217] (II) Loading /usr/lib/xorg/modules/extensions/libdbe.so
    [ 22.222] (II) Module dbe: vendor="X.Org Foundation"
    [ 22.222] compiled for 1.10.2, module version = 1.0.0
    [ 22.222] Module class: X.Org Server Extension
    [ 22.222] ABI class: X.Org Server Extension, version 5.0
    [ 22.222] (II) Loading extension DOUBLE-BUFFER
    [ 22.222] (II) LoadModule: "glx"
    [ 22.222] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
    [ 22.242] (II) Module glx: vendor="X.Org Foundation"
    [ 22.242] compiled for 1.10.2, module version = 1.0.0
    [ 22.242] ABI class: X.Org Server Extension, version 5.0
    [ 22.242] (==) AIGLX enabled
    [ 22.242] (II) Loading extension GLX
    [ 22.242] (II) LoadModule: "record"
    [ 22.242] (II) Loading /usr/lib/xorg/modules/extensions/librecord.so
    [ 22.250] (II) Module record: vendor="X.Org Foundation"
    [ 22.250] compiled for 1.10.2, module version = 1.13.0
    [ 22.250] Module class: X.Org Server Extension
    [ 22.250] ABI class: X.Org Server Extension, version 5.0
    [ 22.250] (II) Loading extension RECORD
    [ 22.250] (II) LoadModule: "dri"
    [ 22.250] (II) Loading /usr/lib/xorg/modules/extensions/libdri.so
    [ 22.264] (II) Module dri: vendor="X.Org Foundation"
    [ 22.264] compiled for 1.10.2, module version = 1.0.0
    [ 22.264] ABI class: X.Org Server Extension, version 5.0
    [ 22.264] (II) Loading extension XFree86-DRI
    [ 22.264] (II) LoadModule: "dri2"
    [ 22.264] (II) Loading /usr/lib/xorg/modules/extensions/libdri2.so
    [ 22.265] (II) Module dri2: vendor="X.Org Foundation"
    [ 22.265] compiled for 1.10.2, module version = 1.2.0
    [ 22.265] ABI class: X.Org Server Extension, version 5.0
    [ 22.265] (II) Loading extension DRI2
    [ 22.265] (==) Matched ati as autoconfigured driver 0
    [ 22.265] (==) Matched vesa as autoconfigured driver 1
    [ 22.265] (==) Matched fbdev as autoconfigured driver 2
    [ 22.265] (==) Assigned the driver to the xf86ConfigLayout
    [ 22.265] (II) LoadModule: "ati"
    [ 22.265] (II) Loading /usr/lib/xorg/modules/drivers/ati_drv.so
    [ 22.273] (II) Module ati: vendor="X.Org Foundation"
    [ 22.273] compiled for 1.10.0, module version = 6.14.1
    [ 22.273] Module class: X.Org Video Driver
    [ 22.273] ABI class: X.Org Video Driver, version 10.0
    [ 22.274] (II) LoadModule: "radeon"
    [ 22.274] (II) Loading /usr/lib/xorg/modules/drivers/radeon_drv.so
    [ 22.319] (II) Module radeon: vendor="X.Org Foundation"
    [ 22.319] compiled for 1.10.0, module version = 6.14.1
    [ 22.319] Module class: X.Org Video Driver
    [ 22.319] ABI class: X.Org Video Driver, version 10.0
    [ 22.325] (II) LoadModule: "vesa"
    [ 22.335] (WW) Warning, couldn't open module vesa
    [ 22.335] (II) UnloadModule: "vesa"
    [ 22.335] (II) Unloading vesa
    [ 22.335] (EE) Failed to load module "vesa" (module does not exist, 0)
    [ 22.335] (II) LoadModule: "fbdev"
    [ 22.335] (WW) Warning, couldn't open module fbdev
    [ 22.335] (II) UnloadModule: "fbdev"
    [ 22.335] (II) Unloading fbdev
    [ 22.335] (EE) Failed to load module "fbdev" (module does not exist, 0)
    [ 22.335] (II) RADEON: Driver for ATI Radeon chipsets:
    ATI Radeon Mobility X600 (M24) 3150 (PCIE), ATI FireMV 2400 (PCI),
    ATI Radeon Mobility X300 (M24) 3152 (PCIE),
    ATI FireGL M24 GL 3154 (PCIE), ATI FireMV 2400 3155 (PCI),
    ATI Radeon X600 (RV380) 3E50 (PCIE),
    ATI FireGL V3200 (RV380) 3E54 (PCIE), ATI Radeon IGP320 (A3) 4136,
    ATI Radeon IGP330/340/350 (A4) 4137, ATI Radeon 9500 AD (AGP),
    ATI Radeon 9500 AE (AGP), ATI Radeon 9600TX AF (AGP),
    ATI FireGL Z1 AG (AGP), ATI Radeon 9800SE AH (AGP),
    ATI Radeon 9800 AI (AGP), ATI Radeon 9800 AJ (AGP),
    ATI FireGL X2 AK (AGP), ATI Radeon 9600 AP (AGP),
    ATI Radeon 9600SE AQ (AGP), ATI Radeon 9600XT AR (AGP),
    ATI Radeon 9600 AS (AGP), ATI FireGL T2 AT (AGP), ATI Radeon 9650,
    ATI FireGL RV360 AV (AGP), ATI Radeon 7000 IGP (A4+) 4237,
    ATI Radeon 8500 AIW BB (AGP), ATI Radeon IGP320M (U1) 4336,
    ATI Radeon IGP330M/340M/350M (U2) 4337,
    ATI Radeon Mobility 7000 IGP 4437, ATI Radeon 9000/PRO If (AGP/PCI),
    ATI Radeon 9000 Ig (AGP/PCI), ATI Radeon X800 (R420) JH (AGP),
    ATI Radeon X800PRO (R420) JI (AGP),
    ATI Radeon X800SE (R420) JJ (AGP), ATI Radeon X800 (R420) JK (AGP),
    ATI Radeon X800 (R420) JL (AGP), ATI FireGL X3 (R420) JM (AGP),
    ATI Radeon Mobility 9800 (M18) JN (AGP),
    ATI Radeon X800 SE (R420) (AGP), ATI Radeon X800XT (R420) JP (AGP),
    ATI Radeon X800 VE (R420) JT (AGP), ATI Radeon X850 (R480) (AGP),
    ATI Radeon X850 XT (R480) (AGP), ATI Radeon X850 SE (R480) (AGP),
    ATI Radeon X850 PRO (R480) (AGP), ATI Radeon X850 XT PE (R480) (AGP),
    ATI Radeon Mobility M7 LW (AGP),
    ATI Mobility FireGL 7800 M7 LX (AGP),
    ATI Radeon Mobility M6 LY (AGP), ATI Radeon Mobility M6 LZ (AGP),
    ATI FireGL Mobility 9000 (M9) Ld (AGP),
    ATI Radeon Mobility 9000 (M9) Lf (AGP),
    ATI Radeon Mobility 9000 (M9) Lg (AGP), ATI Radeon 9700 Pro ND (AGP),
    ATI Radeon 9700/9500Pro NE (AGP), ATI Radeon 9600TX NF (AGP),
    ATI FireGL X1 NG (AGP), ATI Radeon 9800PRO NH (AGP),
    ATI Radeon 9800 NI (AGP), ATI FireGL X2 NK (AGP),
    ATI Radeon 9800XT NJ (AGP),
    ATI Radeon Mobility 9600/9700 (M10/M11) NP (AGP),
    ATI Radeon Mobility 9600 (M10) NQ (AGP),
    ATI Radeon Mobility 9600 (M11) NR (AGP),
    ATI Radeon Mobility 9600 (M10) NS (AGP),
    ATI FireGL Mobility T2 (M10) NT (AGP),
    ATI FireGL Mobility T2e (M11) NV (AGP), ATI Radeon QD (AGP),
    ATI Radeon QE (AGP), ATI Radeon QF (AGP), ATI Radeon QG (AGP),
    ATI FireGL 8700/8800 QH (AGP), ATI Radeon 8500 QL (AGP),
    ATI Radeon 9100 QM (AGP), ATI Radeon 7500 QW (AGP/PCI),
    ATI Radeon 7500 QX (AGP/PCI), ATI Radeon VE/7000 QY (AGP/PCI),
    ATI Radeon VE/7000 QZ (AGP/PCI), ATI ES1000 515E (PCI),
    ATI Radeon Mobility X300 (M22) 5460 (PCIE),
    ATI Radeon Mobility X600 SE (M24C) 5462 (PCIE),
    ATI FireGL M22 GL 5464 (PCIE), ATI Radeon X800 (R423) UH (PCIE),
    ATI Radeon X800PRO (R423) UI (PCIE),
    ATI Radeon X800LE (R423) UJ (PCIE),
    ATI Radeon X800SE (R423) UK (PCIE),
    ATI Radeon X800 XTP (R430) (PCIE), ATI Radeon X800 XL (R430) (PCIE),
    ATI Radeon X800 SE (R430) (PCIE), ATI Radeon X800 (R430) (PCIE),
    ATI FireGL V7100 (R423) (PCIE), ATI FireGL V5100 (R423) UQ (PCIE),
    ATI FireGL unknown (R423) UR (PCIE),
    ATI FireGL unknown (R423) UT (PCIE),
    ATI Mobility FireGL V5000 (M26) (PCIE),
    ATI Mobility FireGL V5000 (M26) (PCIE),
    ATI Mobility Radeon X700 XL (M26) (PCIE),
    ATI Mobility Radeon X700 (M26) (PCIE),
    ATI Mobility Radeon X700 (M26) (PCIE),
    ATI Radeon X550XTX 5657 (PCIE), ATI Radeon 9100 IGP (A5) 5834,
    ATI Radeon Mobility 9100 IGP (U3) 5835,
    ATI Radeon XPRESS 200 5954 (PCIE),
    ATI Radeon XPRESS 200M 5955 (PCIE), ATI Radeon 9250 5960 (AGP),
    ATI Radeon 9200 5961 (AGP), ATI Radeon 9200 5962 (AGP),
    ATI Radeon 9200SE 5964 (AGP), ATI FireMV 2200 (PCI),
    ATI ES1000 5969 (PCI), ATI Radeon XPRESS 200 5974 (PCIE),
    ATI Radeon XPRESS 200M 5975 (PCIE),
    ATI Radeon XPRESS 200 5A41 (PCIE),
    ATI Radeon XPRESS 200M 5A42 (PCIE),
    ATI Radeon XPRESS 200 5A61 (PCIE),
    ATI Radeon XPRESS 200M 5A62 (PCIE),
    ATI Radeon X300 (RV370) 5B60 (PCIE),
    ATI Radeon X600 (RV370) 5B62 (PCIE),
    ATI Radeon X550 (RV370) 5B63 (PCIE),
    ATI FireGL V3100 (RV370) 5B64 (PCIE),
    ATI FireMV 2200 PCIE (RV370) 5B65 (PCIE),
    ATI Radeon Mobility 9200 (M9+) 5C61 (AGP),
    ATI Radeon Mobility 9200 (M9+) 5C63 (AGP),
    ATI Mobility Radeon X800 XT (M28) (PCIE),
    ATI Mobility FireGL V5100 (M28) (PCIE),
    ATI Mobility Radeon X800 (M28) (PCIE), ATI Radeon X850 5D4C (PCIE),
    ATI Radeon X850 XT PE (R480) (PCIE),
    ATI Radeon X850 SE (R480) (PCIE), ATI Radeon X850 PRO (R480) (PCIE),
    ATI unknown Radeon / FireGL (R480) 5D50 (PCIE),
    ATI Radeon X850 XT (R480) (PCIE),
    ATI Radeon X800XT (R423) 5D57 (PCIE),
    ATI FireGL V5000 (RV410) (PCIE), ATI Radeon X700 XT (RV410) (PCIE),
    ATI Radeon X700 PRO (RV410) (PCIE),
    ATI Radeon X700 SE (RV410) (PCIE), ATI Radeon X700 (RV410) (PCIE),
    ATI Radeon X700 SE (RV410) (PCIE), ATI Radeon X1800,
    ATI Mobility Radeon X1800 XT, ATI Mobility Radeon X1800,
    ATI Mobility FireGL V7200, ATI FireGL V7200, ATI FireGL V5300,
    ATI Mobility FireGL V7100, ATI Radeon X1800, ATI Radeon X1800,
    ATI Radeon X1800, ATI Radeon X1800, ATI Radeon X1800,
    ATI FireGL V7300, ATI FireGL V7350, ATI Radeon X1600, ATI RV505,
    ATI Radeon X1300/X1550, ATI Radeon X1550, ATI M54-GL,
    ATI Mobility Radeon X1400, ATI Radeon X1300/X1550,
    ATI Radeon X1550 64-bit, ATI Mobility Radeon X1300,
    ATI Mobility Radeon X1300, ATI Mobility Radeon X1300,
    ATI Mobility Radeon X1300, ATI Radeon X1300, ATI Radeon X1300,
    ATI RV505, ATI RV505, ATI FireGL V3300, ATI FireGL V3350,
    ATI Radeon X1300, ATI Radeon X1550 64-bit, ATI Radeon X1300/X1550,
    ATI Radeon X1600, ATI Radeon X1300/X1550, ATI Mobility Radeon X1450,
    ATI Radeon X1300/X1550, ATI Mobility Radeon X2300,
    ATI Mobility Radeon X2300, ATI Mobility Radeon X1350,
    ATI Mobility Radeon X1350, ATI Mobility Radeon X1450,
    ATI Radeon X1300, ATI Radeon X1550, ATI Mobility Radeon X1350,
    ATI FireMV 2250, ATI Radeon X1550 64-bit, ATI Radeon X1600,
    ATI Radeon X1650, ATI Radeon X1600, ATI Radeon X1600,
    ATI Mobility FireGL V5200, ATI Mobility Radeon X1600,
    ATI Radeon X1650, ATI Radeon X1650, ATI Radeon X1600,
    ATI Radeon X1300 XT/X1600 Pro, ATI FireGL V3400,
    ATI Mobility FireGL V5250, ATI Mobility Radeon X1700,
    ATI Mobility Radeon X1700 XT, ATI FireGL V5200,
    ATI Mobility Radeon X1700, ATI Radeon X2300HD,
    ATI Mobility Radeon HD 2300, ATI Mobility Radeon HD 2300,
    ATI Radeon X1950, ATI Radeon X1900, ATI Radeon X1950,
    ATI Radeon X1900, ATI Radeon X1900, ATI Radeon X1900,
    ATI Radeon X1900, ATI Radeon X1900, ATI Radeon X1900,
    ATI Radeon X1900, ATI Radeon X1900, ATI Radeon X1900,
    ATI AMD Stream Processor, ATI Radeon X1900, ATI Radeon X1950,
    ATI RV560, ATI RV560, ATI Mobility Radeon X1900, ATI RV560,
    ATI Radeon X1950 GT, ATI RV570, ATI RV570, ATI FireGL V7400,
    ATI RV560, ATI Radeon X1650, ATI Radeon X1650, ATI RV560,
    ATI Radeon 9100 PRO IGP 7834, ATI Radeon Mobility 9200 IGP 7835,
    ATI Radeon X1200, ATI Radeon X1200, ATI Radeon X1200,
    ATI Radeon X1200, ATI Radeon X1200, ATI RS740, ATI RS740M, ATI RS740,
    ATI RS740M, ATI Radeon HD 2900 XT, ATI Radeon HD 2900 XT,
    ATI Radeon HD 2900 XT, ATI Radeon HD 2900 Pro, ATI Radeon HD 2900 GT,
    ATI FireGL V8650, ATI FireGL V8600, ATI FireGL V7600,
    ATI Radeon 4800 Series, ATI Radeon HD 4870 x2,
    ATI Radeon 4800 Series, ATI Radeon HD 4850 x2,
    ATI FirePro V8750 (FireGL), ATI FirePro V7760 (FireGL),
    ATI Mobility RADEON HD 4850, ATI Mobility RADEON HD 4850 X2,
    ATI Radeon 4800 Series, ATI FirePro RV770, AMD FireStream 9270,
    AMD FireStream 9250, ATI FirePro V8700 (FireGL),
    ATI Mobility RADEON HD 4870, ATI Mobility RADEON M98,
    ATI Mobility RADEON HD 4870, ATI Radeon 4800 Series,
    ATI Radeon 4800 Series, ATI FirePro M7750, ATI M98, ATI M98, ATI M98,
    ATI Mobility Radeon HD 4650, ATI Radeon RV730 (AGP),
    ATI Mobility Radeon HD 4670, ATI FirePro M5750,
    ATI Mobility Radeon HD 4670, ATI Radeon RV730 (AGP),
    ATI RV730XT [Radeon HD 4670], ATI RADEON E4600,
    ATI Radeon HD 4600 Series, ATI RV730 PRO [Radeon HD 4650],
    ATI FirePro V7750 (FireGL), ATI FirePro V5700 (FireGL),
    ATI FirePro V3750 (FireGL), ATI Mobility Radeon HD 4830,
    ATI Mobility Radeon HD 4850, ATI FirePro M7740, ATI RV740,
    ATI Radeon HD 4770, ATI Radeon HD 4700 Series, ATI Radeon HD 4770,
    ATI FirePro M5750, ATI RV610, ATI Radeon HD 2400 XT,
    ATI Radeon HD 2400 Pro, ATI Radeon HD 2400 PRO AGP, ATI FireGL V4000,
    ATI RV610, ATI Radeon HD 2350, ATI Mobility Radeon HD 2400 XT,
    ATI Mobility Radeon HD 2400, ATI RADEON E2400, ATI RV610,
    ATI FireMV 2260, ATI RV670, ATI Radeon HD3870,
    ATI Mobility Radeon HD 3850, ATI Radeon HD3850,
    ATI Mobility Radeon HD 3850 X2, ATI RV670,
    ATI Mobility Radeon HD 3870, ATI Mobility Radeon HD 3870 X2,
    ATI Radeon HD3870 X2, ATI FireGL V7700, ATI Radeon HD3850,
    ATI Radeon HD3690, AMD Firestream 9170, ATI Radeon HD 4550,
    ATI Radeon RV710, ATI Radeon RV710, ATI Radeon RV710,
    ATI Radeon HD 4350, ATI Mobility Radeon 4300 Series,
    ATI Mobility Radeon 4500 Series, ATI Mobility Radeon 4500 Series,
    ATI FirePro RG220, ATI Mobility Radeon 4330, ATI RV630,
    ATI Mobility Radeon HD 2600, ATI Mobility Radeon HD 2600 XT,
    ATI Radeon HD 2600 XT AGP, ATI Radeon HD 2600 Pro AGP,
    ATI Radeon HD 2600 XT, ATI Radeon HD 2600 Pro, ATI Gemini RV630,
    ATI Gemini Mobility Radeon HD 2600 XT, ATI FireGL V5600,
    ATI FireGL V3600, ATI Radeon HD 2600 LE,
    ATI Mobility FireGL Graphics Processor, ATI Radeon HD 3470,
    ATI Mobility Radeon HD 3430, ATI Mobility Radeon HD 3400 Series,
    ATI Radeon HD 3450, ATI Radeon HD 3450, ATI Radeon HD 3430,
    ATI Radeon HD 3450, ATI FirePro V3700, ATI FireMV 2450,
    ATI FireMV 2260, ATI FireMV 2260, ATI Radeon HD 3600 Series,
    ATI Radeon HD 3650 AGP, ATI Radeon HD 3600 PRO,
    ATI Radeon HD 3600 XT, ATI Radeon HD 3600 PRO,
    ATI Mobility Radeon HD 3650, ATI Mobility Radeon HD 3670,
    ATI Mobility FireGL V5700, ATI Mobility FireGL V5725,
    ATI Radeon HD 3200 Graphics, ATI Radeon 3100 Graphics,
    ATI Radeon HD 3200 Graphics, ATI Radeon 3100 Graphics,
    ATI Radeon HD 3300 Graphics, ATI Radeon HD 3200 Graphics,
    ATI Radeon 3000 Graphics, ATI Radeon HD 4200, ATI Radeon 4100,
    ATI Mobility Radeon HD 4200, ATI Mobility Radeon 4100,
    ATI Radeon HD 4290, ATI Radeon HD 4250, AMD Radeon HD 6310 Graphics,
    AMD Radeon HD 6310 Graphics, AMD Radeon HD 6250 Graphics,
    AMD Radeon HD 6250 Graphics, CYPRESS,
    ATI FirePro (FireGL) Graphics Adapter,
    ATI FirePro (FireGL) Graphics Adapter,
    ATI FirePro (FireGL) Graphics Adapter, AMD Firestream 9370,
    AMD Firestream 9350, ATI Radeon HD 5800 Series,
    ATI Radeon HD 5800 Series, ATI Radeon HD 5800 Series,
    ATI Radeon HD 5900 Series, ATI Radeon HD 5900 Series,
    ATI Mobility Radeon HD 5800 Series,
    ATI Mobility Radeon HD 5800 Series,
    ATI FirePro (FireGL) Graphics Adapter,
    ATI FirePro (FireGL) Graphics Adapter,
    ATI Mobility Radeon HD 5800 Series, ATI Radeon HD 5700 Series,
    ATI Radeon HD 5700 Series, ATI Radeon HD 5700 Series,
    ATI Mobility Radeon HD 5000 Series,
    ATI Mobility Radeon HD 5000 Series, ATI Mobility Radeon HD 5570,
    ATI FirePro (FireGL) Graphics Adapter,
    ATI FirePro (FireGL) Graphics Adapter, ATI Radeon HD 5670,
    ATI Radeon HD 5570, ATI Radeon HD 5500 Series, REDWOOD,
    ATI Mobility Radeon HD 5000 Series,
    ATI Mobility Radeon HD 5000 Series, ATI Mobility Radeon Graphics,
    ATI Mobility Radeon Graphics, CEDAR,
    ATI FirePro (FireGL) Graphics Adapter,
    ATI FirePro (FireGL) Graphics Adapter, ATI FirePro 2270, CEDAR,
    ATI Radeon HD 5450, CEDAR, CAYMAN, CAYMAN, CAYMAN, CAYMAN, CAYMAN,
    CAYMAN, CAYMAN, CAYMAN, CAYMAN, CAYMAN, AMD Radeon HD 6900 Series,
    AMD Radeon HD 6900 Series, CAYMAN, CAYMAN,
    AMD Radeon HD 6900M Series, Mobility Radeon HD 6000 Series, BARTS,
    BARTS, Mobility Radeon HD 6000 Series,
    Mobility Radeon HD 6000 Series, BARTS, BARTS, BARTS, BARTS,
    AMD Radeon HD 6800 Series, AMD Radeon HD 6800 Series, TURKS, TURKS,
    TURKS, TURKS, TURKS, TURKS, TURKS, TURKS, TURKS, TURKS, TURKS, TURKS,
    TURKS, CAICOS, CAICOS, CAICOS, CAICOS, CAICOS, CAICOS, CAICOS,
    CAICOS, CAICOS, CAICOS, CAICOS
    [ 22.340] (--) using VT number 7
    [ 22.343] (II) Loading /usr/lib/xorg/modules/drivers/radeon_drv.so
    [ 22.343] (II) [KMS] Kernel modesetting enabled.
    [ 22.344] (II) RADEON(0): Creating default Display subsection in Screen section
    "Default Screen Section" for depth/fbbpp 24/32
    [ 22.344] (==) RADEON(0): Depth 24, (--) framebuffer bpp 32
    [ 22.344] (II) RADEON(0): Pixel depth = 24 bits stored in 4 bytes (32 bpp pixmaps)
    [ 22.344] (==) RADEON(0): Default visual is TrueColor
    [ 22.344] (==) RADEON(0): RGB weight 888
    [ 22.344] (II) RADEON(0): Using 8 bits per RGB (8 bit DAC)
    [ 22.344] (--) RADEON(0): Chipset: "ATI Radeon HD 2400 XT" (ChipID = 0x94c1)
    [ 22.344] (II) RADEON(0): PCIE card detected
    [ 22.344] drmOpenDevice: node name is /dev/dri/card0
    [ 22.344] drmOpenDevice: open result is 9, (OK)
    [ 22.344] drmOpenByBusid: Searching for BusID pci:0000:01:00.0
    [ 22.344] drmOpenDevice: node name is /dev/dri/card0
    [ 22.344] drmOpenDevice: open result is 9, (OK)
    [ 22.344] drmOpenByBusid: drmOpenMinor returns 9
    [ 22.344] drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0
    [ 22.345] (II) Loading sub module "exa"
    [ 22.345] (II) LoadModule: "exa"
    [ 22.345] (II) Loading /usr/lib/xorg/modules/libexa.so
    [ 22.346] (II) Module exa: vendor="X.Org Foundation"
    [ 22.346] compiled for 1.10.2, module version = 2.5.0
    [ 22.346] ABI class: X.Org Video Driver, version 10.0
    [ 22.346] (II) RADEON(0): KMS Color Tiling: disabled
    [ 22.346] (II) RADEON(0): KMS Pageflipping: enabled
    [ 22.346] (II) RADEON(0): SwapBuffers wait for vsync: enabled
    [ 22.356] (II) RADEON(0): Output DIN has no monitor section
    [ 22.410] (II) RADEON(0): Output DVI-0 has no monitor section
    [ 22.423] (II) RADEON(0): Output DVI-1 has no monitor section
    [ 22.436] (II) RADEON(0): EDID for output DIN
    [ 22.490] (II) RADEON(0): EDID for output DVI-0
    [ 22.490] (II) RADEON(0): Manufacturer: DEL Model: 4042 Serial#: 1145451340
    [ 22.490] (II) RADEON(0): Year: 2009 Week: 34
    [ 22.490] (II) RADEON(0): EDID Version: 1.3
    [ 22.490] (II) RADEON(0): Digital Display Input
    [ 22.490] (II) RADEON(0): Max Image Size [cm]: horiz.: 43 vert.: 27
    [ 22.490] (II) RADEON(0): Gamma: 2.20
    [ 22.490] (II) RADEON(0): DPMS capabilities: Off
    [ 22.490] (II) RADEON(0): Supported color encodings: RGB 4:4:4 YCrCb 4:4:4
    [ 22.490] (II) RADEON(0): Default color space is primary color space
    [ 22.490] (II) RADEON(0): First detailed timing is preferred mode
    [ 22.490] (II) RADEON(0): redX: 0.654 redY: 0.331 greenX: 0.220 greenY: 0.679
    [ 22.490] (II) RADEON(0): blueX: 0.148 blueY: 0.055 whiteX: 0.313 whiteY: 0.329
    [ 22.490] (II) RADEON(0): Supported established timings:
    [ 22.490] (II) RADEON(0): 720x400@70Hz
    [ 22.490] (II) RADEON(0): 640x480@60Hz
    [ 22.490] (II) RADEON(0): 640x480@67Hz
    [ 22.490] (II) RADEON(0): 640x480@72Hz
    [ 22.490] (II) RADEON(0): 640x480@75Hz
    [ 22.490] (II) RADEON(0): 800x600@56Hz
    [ 22.490] (II) RADEON(0): 800x600@60Hz
    [ 22.490] (II) RADEON(0): 800x600@72Hz
    [ 22.490] (II) RADEON(0): 800x600@75Hz
    [ 22.491] (II) RADEON(0): 832x624@75Hz
    [ 22.491] (II) RADEON(0): 1024x768@60Hz
    [ 22.491] (II) RADEON(0): 1024x768@70Hz
    [ 22.491] (II) RADEON(0): 1024x768@75Hz
    [ 22.491] (II) RADEON(0): 1280x1024@75Hz
    [ 22.491] (II) RADEON(0): 1152x864@75Hz
    [ 22.491] (II) RADEON(0): Manufacturer's mask: 0
    [ 22.491] (II) RADEON(0): Supported standard timings:
    [ 22.491] (II) RADEON(0): #0: hsize: 1152 vsize 864 refresh: 75 vid: 20337
    [ 22.491] (II) RADEON(0): #1: hsize: 1280 vsize 1024 refresh: 60 vid: 32897
    [ 22.491] (II) RADEON(0): #2: hsize: 1680 vsize 1050 refresh: 60 vid: 179
    [ 22.491] (II) RADEON(0): #3: hsize: 1440 vsize 900 refresh: 60 vid: 149
    [ 22.491] (II) RADEON(0): #4: hsize: 1280 vsize 720 refresh: 60 vid: 49281
    [ 22.491] (II) RADEON(0): #5: hsize: 1280 vsize 800 refresh: 60 vid: 129
    [ 22.491] (II) RADEON(0): Supported detailed timing:
    [ 22.491] (II) RADEON(0): clock: 146.2 MHz Image Size: 433 x 271 mm
    [ 22.491] (II) RADEON(0): h_active: 1680 h_sync: 1784 h_sync_end 1960 h_blank_end 2240 h_border: 0
    [ 22.491] (II) RADEON(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0
    [ 22.491] (II) RADEON(0): Serial No: G433H98MDF3L
    [ 22.491] (II) RADEON(0): Monitor name: DELL 2009W
    [ 22.491] (II) RADEON(0): Ranges: V min: 56 V max: 75 Hz, H min: 30 H max: 83 kHz, PixClock max 165 MHz
    [ 22.491] (II) RADEON(0): EDID (in hex):
    [ 22.491] (II) RADEON(0): 00ffffffffffff0010ac42404c334644
    [ 22.491] (II) RADEON(0): 22130103802b1b782eb705a75438ad26
    [ 22.491] (II) RADEON(0): 0e5054bfef80714f8180b300950081c0
    [ 22.491] (II) RADEON(0): 81000101010121399030621a274068b0
    [ 22.491] (II) RADEON(0): 3600b10f1100001c000000ff00473433
    [ 22.491] (II) RADEON(0): 334839384d4446334c0a000000fc0044
    [ 22.491] (II) RADEON(0): 454c4c2032303039570a2020000000fd
    [ 22.491] (II) RADEON(0): 00384b1e5310000a2020202020200004
    [ 22.491] (II) RADEON(0): Printing probed modes for output DVI-0
    [ 22.491] (II) RADEON(0): Modeline "1680x1050"x60.0 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync (65.3 kHz)
    [ 22.491] (II) RADEON(0): Modeline "1280x1024"x75.0 135.00 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync (80.0 kHz)
    [ 22.491] (II) RADEON(0): Modeline "1280x1024"x60.0 108.00 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync (64.0 kHz)
    [ 22.491] (II) RADEON(0): Modeline "1440x900"x59.9 106.50 1440 1520 1672 1904 900 903 909 934 -hsync +vsync (55.9 kHz)
    [ 22.491] (II) RADEON(0): Modeline "1280x800"x59.8 83.50 1280 1352 1480 1680 800 803 809 831 +hsync -vsync (49.7 kHz)
    [ 22.491] (II) RADEON(0): Modeline "1152x864"x75.0 108.00 1152 1216 1344 1600 864 865 868 900 +hsync +vsync (67.5 kHz)
    [ 22.491] (II) RADEON(0): Modeline "1280x720"x60.0 74.44 1280 1336 1472 1664 720 721 724 746 -hsync +vsync (44.7 kHz)
    [ 22.491] (II) RADEON(0): Modeline "1024x768"x75.1 78.80 1024 1040 1136 1312 768 769 772 800 +hsync +vsync (60.1 kHz)
    [ 22.491] (II) RADEON(0): Modeline "1024x768"x70.1 75.00 1024 1048 1184 1328 768 771 777 806 -hsync -vsync (56.5 kHz)
    [ 22.491] (II) RADEON(0): Modeline "1024x768"x60.0 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync (48.4 kHz)
    [ 22.491] (II) RADEON(0): Modeline "832x624"x74.6 57.28 832 864 928 1152 624 625 628 667 -hsync -vsync (49.7 kHz)
    [ 22.491] (II) RADEON(0): Modeline "800x600"x72.2 50.00 800 856 976 1040 600 637 643 666 +hsync +vsync (48.1 kHz)
    [ 22.491] (II) RADEON(0): Modeline "800x600"x75.0 49.50 800 816 896 1056 600 601 604 625 +hsync +vsync (46.9 kHz)
    [ 22.491] (II) RADEON(0): Modeline "800x600"x60.3 40.00 800 840 968 1056 600 601 605 628 +hsync +vsync (37.9 kHz)
    [ 22.491] (II) RADEON(0): Modeline "800x600"x56.2 36.00 800 824 896 1024 600 601 603 625 +hsync +vsync (35.2 kHz)
    [ 22.491] (II) RADEON(0): Modeline "640x480"x72.8 31.50 640 664 704 832 480 489 491 520 -hsync -vsync (37.9 kHz)
    [ 22.491] (II) RADEON(0): Modeline "640x480"x75.0 31.50 640 656 720 840 480 481 484 500 -hsync -vsync (37.5 kHz)
    [ 22.491] (II) RADEON(0): Modeline "640x480"x66.7 30.24 640 704 768 864 480 483 486 525 -hsync -vsync (35.0 kHz)
    [ 22.491] (II) RADEON(0): Modeline "640x480"x60.0 25.20 640 656 752 800 480 490 492 525 -hsync -vsync (31.5 kHz)
    [ 22.491] (II) RADEON(0): Modeline "720x400"x70.1 28.32 720 738 846 900 400 412 414 449 -hsync +vsync (31.5 kHz)
    [ 22.506] (II) RADEON(0): EDID for output DVI-1
    [ 22.506] (II) RADEON(0): Output DIN disconnected
    [ 22.507] (II) RADEON(0): Output DVI-0 connected
    [ 22.507] (II) RADEON(0): Output DVI-1 disconnected
    [ 22.507] (II) RADEON(0): Using exact sizes for initial modes
    [ 22.507] (II) RADEON(0): Output DVI-0 using initial mode 1680x1050
    [ 22.507] (II) RADEON(0): Using default gamma of (1.0, 1.0, 1.0) unless otherwise stated.
    [ 22.507] (II) RADEON(0): mem size init: gart size :1fdff000 vram size: s:10000000 visible:f8ca000
    [ 22.507] (II) RADEON(0): EXA: Driver will allow EXA pixmaps in VRAM
    [ 22.507] (==) RADEON(0): DPI set to (96, 96)
    [ 22.507] (II) Loading sub module "fb"
    [ 22.507] (II) LoadModule: "fb"
    [ 22.507] (II) Loading /usr/lib/xorg/modules/libfb.so
    [ 22.517] (II) Module fb: vendor="X.Org Foundation"
    [ 22.517] compiled for 1.10.2, module version = 1.0.0
    [ 22.517] ABI class: X.Org ANSI C Emulation, version 0.4
    [ 22.517] (II) Loading sub module "ramdac"
    [ 22.517] (II) LoadModule: "ramdac"
    [ 22.517] (II) Module "ramdac" already built-in
    [ 22.517] (--) Depth 24 pixmap format is 32 bpp
    [ 22.517] (II) RADEON(0): [DRI2] Setup complete
    [ 22.517] (II) RADEON(0): [DRI2] DRI driver: r600
    [ 22.517] (II) RADEON(0): Front buffer size: 7128K
    [ 22.517] (II) RADEON(0): VRAM usage limit set to 222868K
    [ 22.531] (==) RADEON(0): Backing store disabled
    [ 22.531] (II) RADEON(0): Direct rendering enabled
    [ 22.541] (II) RADEON(0): Setting EXA maxPitchBytes
    [ 22.541] (II) EXA(0): Driver allocated offscreen pixmaps
    [ 22.541] (II) EXA(0): Driver registered support for the following operations:
    [ 22.541] (II) Solid
    [ 22.541] (II) Copy
    [ 22.541] (II) Composite (RENDER acceleration)
    [ 22.541] (II) UploadToScreen
    [ 22.541] (II) DownloadFromScreen
    [ 22.541] (II) RADEON(0): Acceleration enabled
    [ 22.541] (==) RADEON(0): DPMS enabled
    [ 22.541] (==) RADEON(0): Silken mouse enabled
    [ 22.550] (II) RADEON(0): Set up textured video
    [ 22.550] (II) RADEON(0): RandR 1.2 enabled, ignore the following RandR disabled message.
    [ 23.153] (--) RandR disabled
    [ 23.153] (II) Initializing built-in extension Generic Event Extension
    [ 23.153] (II) Initializing built-in extension SHAPE
    [ 23.153] (II) Initializing built-in extension MIT-SHM
    [ 23.153] (II) Initializing built-in extension XInputExtension
    [ 23.153] (II) Initializing built-in extension XTEST
    [ 23.153] (II) Initializing built-in extension BIG-REQUESTS
    [ 23.153] (II) Initializing built-in extension SYNC
    [ 23.153] (II) Initializing built-in extension XKEYBOARD
    [ 23.153] (II) Initializing built-in extension XC-MISC
    [ 23.153] (II) Initializing built-in extension SECURITY
    [ 23.153] (II) Initializing built-in extension XINERAMA
    [ 23.153] (II) Initializing built-in extension XFIXES
    [ 23.153] (II) Initializing built-in extension RENDER
    [ 23.153] (II) Initializing built-in extension RANDR
    [ 23.153] (II) Initializing built-in extension COMPOSITE
    [ 23.153] (II) Initializing built-in extension DAMAGE
    [ 23.295] (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
    [ 23.295] (II) AIGLX: enabled GLX_INTEL_swap_event
    [ 23.295] (II) AIGLX: enabled GLX_SGI_swap_control and GLX_MESA_swap_control
    [ 23.295] (II) AIGLX: enabled GLX_SGI_make_current_read
    [ 23.295] (II) AIGLX: GLX_EXT_texture_from_pixmap backed by buffer objects
    [ 23.296] (II) AIGLX: Loaded and initialized /usr/lib/xorg/modules/dri/r600_dri.so
    [ 23.296] (II) GLX: Initialized DRI2 GL provider for screen 0
    [ 23.303] (II) RADEON(0): Setting screen physical size to 444 x 277
    [ 23.674] (II) config/udev: Adding input device Power Button (/dev/input/event1)
    [ 23.674] (**) Power Button: Applying InputClass "evdev keyboard catchall"
    [ 23.674] (II) LoadModule: "evdev"
    [ 23.675] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
    [ 23.683] (II) Module evdev: vendor="X.Org Foundation"
    [ 23.683] compiled for 1.10.0, module version = 2.6.0
    [ 23.683] Module class: X.Org XInput Driver
    [ 23.683] ABI class: X.Org XInput driver, version 12.2
    [ 23.683] (II) Using input driver 'evdev' for 'Power Button'
    [ 23.683] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
    [ 23.683] (**) Power Button: always reports core events
    [ 23.683] (**) Power Button: Device: "/dev/input/event1"
    [ 23.713] (--) Power Button: Found keys
    [ 23.713] (II) Power Button: Configuring as keyboard
    [ 23.713] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input1/event1"
    [ 23.713] (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD)
    [ 23.713] (**) Option "xkb_rules" "evdev"
    [ 23.713] (**) Option "xkb_model" "evdev"
    [ 23.713] (**) Option "xkb_layout" "us"
    [ 23.734] (II) config/udev: Adding input device Power Button (/dev/input/event0)
    [ 23.734] (**) Power Button: Applying InputClass "evdev keyboard catchall"
    [ 23.734] (II) Using input driver 'evdev' for 'Power Button'
    [ 23.734] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
    [ 23.734] (**) Power Button: always reports core events
    [ 23.734] (**) Power Button: Device: "/dev/input/event0"
    [ 23.750] (--) Power Button: Found keys
    [ 23.750] (II) Power Button: Configuring as keyboard
    [ 23.750] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input0/event0"
    [ 23.750] (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD)
    [ 23.750] (**) Option "xkb_rules" "evdev"
    [ 23.750] (**) Option "xkb_model" "evdev"
    [ 23.750] (**) Option "xkb_layout" "us"
    [ 23.752] (II) config/udev: Adding input device Dell Dell USB Keyboard Hub (/dev/input/event5)
    [ 23.752] (**) Dell Dell USB Keyboard Hub: Applying InputClass "evdev keyboard catchall"
    [ 23.752] (II) Using input driver 'evdev' for 'Dell Dell USB Keyboard Hub'
    [ 23.752] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
    [ 23.752] (**) Dell Dell USB Keyboard Hub: always reports core events
    [ 23.752] (**) Dell Dell USB Keyboard Hub: Device: "/dev/input/event5"
    [ 23.766] (--) Dell Dell USB Keyboard Hub: Found keys
    [ 23.766] (II) Dell Dell USB Keyboard Hub: Configuring as keyboard
    [ 23.766] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2.1/3-2.1:1.0/input/input5/event5"
    [ 23.766] (II) XINPUT: Adding extended input device "Dell Dell USB Keyboard Hub" (type: KEYBOARD)
    [ 23.766] (**) Option "xkb_rules" "evdev"
    [ 23.766] (**) Option "xkb_model" "evdev"
    [ 23.766] (**) Option "xkb_layout" "us"
    [ 23.767] (II) config/udev: Adding input device Dell Dell USB Keyboard Hub (/dev/input/event6)
    [ 23.767] (**) Dell Dell USB Keyboard Hub: Applying InputClass "evdev keyboard catchall"
    [ 23.767] (II) Using input driver 'evdev' for 'Dell Dell USB Keyboard Hub'
    [ 23.767] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
    [ 23.767] (**) Dell Dell USB Keyboard Hub: always reports core events
    [ 23.767] (**) Dell Dell USB Keyboard Hub: Device: "/dev/input/event6"
    [ 23.783] (--) Dell Dell USB Keyboard Hub: Found absolute axes
    [ 23.783] (--) Dell Dell USB Keyboard Hub: Found keys
    [ 23.783] (II) Dell Dell USB Keyboard Hub: Configuring as mouse
    [ 23.783] (II) Dell Dell USB Keyboard Hub: Configuring as keyboard
    [ 23.783] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2.1/3-2.1:1.1/input/input6/event6"
    [ 23.783] (II) XINPUT: Adding extended input device "Dell Dell USB Keyboard Hub" (type: KEYBOARD)
    [ 23.783] (**) Option "xkb_rules" "evdev"
    [ 23.783] (**) Option "xkb_model" "evdev"
    [ 23.783] (**) Option "xkb_layout" "us"
    [ 23.783] (II) Dell Dell USB Keyboard Hub: initialized for absolute axes.
    [ 23.783] (**) Dell Dell USB Keyboard Hub: (accel) keeping acceleration scheme 1
    [ 23.783] (**) Dell Dell USB Keyboard Hub: (accel) acceleration profile 0
    [ 23.783] (**) Dell Dell USB Keyboard Hub: (accel) acceleration factor: 2.000
    [ 23.783] (**) Dell Dell USB Keyboard Hub: (accel) acceleration threshold: 4
    [ 23.784] (II) config/udev: Adding input device HDA Digital PCBeep (/dev/input/event3)
    [ 23.784] (II) No input driver/identifier specified (ignoring)
    [ 23.785] (II) config/udev: Adding input device Dell Premium USB Optical Mouse (/dev/input/event4)
    [ 23.785] (**) Dell Premium USB Optical Mouse: Applying InputClass "evdev pointer catchall"
    [ 23.785] (II) Using input driver 'evdev' for 'Dell Premium USB Optical Mouse'
    [ 23.785] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
    [ 23.785] (**) Dell Premium USB Optical Mouse: always reports core events
    [ 23.785] (**) Dell Premium USB Optical Mouse: Device: "/dev/input/event4"
    [ 23.810] (--) Dell Premium USB Optical Mouse: Found 14 mouse buttons
    [ 23.810] (--) Dell Premium USB Optical Mouse: Found scroll wheel(s)
    [ 23.810] (--) Dell Premium USB Optical Mouse: Found relative axes
    [ 23.810] (--) Dell Premium USB Optical Mouse: Found x and y relative axes
    [ 23.810] (II) Dell Premium USB Optical Mouse: Configuring as mouse
    [ 23.810] (II) Dell Premium USB Optical Mouse: Adding scrollwheel support
    [ 23.810] (**) Dell Premium USB Optical Mouse: YAxisMapping: buttons 4 and 5
    [ 23.810] (**) Dell Premium USB Optical Mouse: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
    [ 23.810] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1d.2/usb7/7-1/7-1:1.0/input/input4/event4"
    [ 23.810] (II) XINPUT: Adding extended input device "Dell Premium USB Optical Mouse" (type: MOUSE)
    [ 23.810] (II) Dell Premium USB Optical Mouse: initialized for relative axes.
    [ 23.810] (**) Dell Premium USB Optical Mouse: (accel) keeping acceleration scheme 1
    [ 23.810] (**) Dell Premium USB Optical Mouse: (accel) acceleration profile 0
    [ 23.810] (**) Dell Premium USB Optical Mouse: (accel) acceleration factor: 2.000
    [ 23.810] (**) Dell Premium USB Optical Mouse: (accel) acceleration threshold: 4
    [ 23.810] (II) config/udev: Adding input device Dell Premium USB Optical Mouse (/dev/input/mouse0)
    [ 23.810] (II) No input driver/identifier specified (ignoring)
    [ 23.813] (II) config/udev: Adding input device PC Speaker (/dev/input/event2)
    [ 23.813] (II) No input driver/identifier specified (ignoring)

  • Mouse click point is not accurate

    Has anyone ever had an issue with the mouse click coordinates not being accurate? For example, when I click on my canvas with the Rectangular Selection Tool, the point being clicked is actually 10 pixels below where the mouse is pointing! It causes much unnecessary headache...
    Thanks for reading!

    How about giving some relevant information (see link)?
    How To Get Help Quickly!
    If you work on CS4 you could rotate through the Screen Modes (hit F three times) to correct the issue, which occurs when opening or creating a file in Full Screen Mode.

Maybe you are looking for

  • Know about ant-sca-deploy.xml

    Hi All, Can you please explain me the ant-sca-deploy.xml works, whcih parameters has to be passed ? for deployment

  • Server is requesting Authentication for.

    Hi, New in SAP XI. When i try to open the Integration Builder : Design Window , a pop up open asking for the User Authentication saying "Server is requesting Authentication for " Please tell the solution. Regards Rajiv Kumar garg

  • REPLACEMENT for HAZMAT_GET_DG_UNDEP_TEXT

    can any one tell me the replacement for HAZMAT_GET_DG_UNDEP_TEXT...

  • Time constraint of Infotype 0006 subtype 1 and 2

    Hi All, Currently the TC of infotype 0006 subtype 1 is 1. I have changed it to 2, so that the gaps are there but no overlapping. However, when I go in SAP and create a new record, its delimiting the previous record. But if I click on change button, i

  • Popping sound between cuts in multicam edit

    Hello, I have a multicam project with two cameras. Each camera have 1.5 hours of footage. I have finished the syncing, cutting, color correction and audio adjustments and the final project is 1.5 hour long. After I had finished a very tedious and lon